Commit: 218793464d452a561d160c34d5113a2b3afa9bd2
Author: Amelie Fondevilla
Date: Mon Dec 5 14:22:04 2022 +0100
Branches: gpencil-new-data-proposal
https://developer.blender.org/rB218793464d452a561d160c34d5113a2b3afa9bd2
fix comparison function to prevent seg fault if structures are not similar
===================================================================
M source/blender/blenkernel/intern/gpencil_new_proposal_test.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/gpencil_new_proposal_test.cc
b/source/blender/blenkernel/intern/gpencil_new_proposal_test.cc
index 073155500ec..aad705e089b 100644
--- a/source/blender/blenkernel/intern/gpencil_new_proposal_test.cc
+++ b/source/blender/blenkernel/intern/gpencil_new_proposal_test.cc
@@ -126,34 +126,38 @@ static void compare_data_structures(const GPData &ngpd,
const bGPdata *ogpd)
/* Compare Layers */
EXPECT_EQ(ngpd.layers_size, ogpd->totlayer);
- int offset{-1};
- LISTBASE_FOREACH (bGPDlayer *, lay, &ogpd->layers) {
- const ::GPLayer *nlay = &(ngpd.layers_array[++offset]);
+ if (ngpd.layers_size == ogpd->totlayer) {
+ int offset{-1};
+ LISTBASE_FOREACH (bGPDlayer *, lay, &ogpd->layers) {
+ const ::GPLayer *nlay = &(ngpd.layers_array[++offset]);
- // Same name
- EXPECT_EQ(std::strcmp(nlay->name, lay->info), 0);
+ // Same name
+ EXPECT_EQ(std::strcmp(nlay->name, lay->info), 0);
+ }
}
/* Compare Frames */
EXPECT_EQ(ngpd.frames_size, ogpd->totframe);
- // get plain list of frames
- std::vector<std::pair<int, int>> ogpd_frames;
- int layer_id{0};
- LISTBASE_FOREACH (bGPDlayer *, lay, &ogpd->layers) {
- LISTBASE_FOREACH (bGPDframe *, frm, &lay->frames) {
- ogpd_frames.emplace_back(layer_id, frm->framenum);
+ if (ngpd.frames_size == ogpd->totframe) {
+ // get plain list of frames
+ std::vector<std::pair<int, int>> ogpd_frames;
+ int layer_id{0};
+ LISTBASE_FOREACH (bGPDlayer *, lay, &ogpd->layers) {
+ LISTBASE_FOREACH (bGPDframe *, frm, &lay->frames) {
+ ogpd_frames.emplace_back(layer_id, frm->framenum);
+ }
+ ++layer_id;
}
- ++layer_id;
- }
- for (int i = 0; i < ngpd.frames_size; i++) {
- const ::GPFrame *nfrm = ngpd.frames_array + i;
- int ofrm_layer_index{ogpd_frames[i].first};
- int ofrm_frame_number{ogpd_frames[i].second};
+ for (int i = 0; i < ngpd.frames_size; i++) {
+ const ::GPFrame *nfrm = ngpd.frames_array + i;
+ int ofrm_layer_index{ogpd_frames[i].first};
+ int ofrm_frame_number{ogpd_frames[i].second};
- EXPECT_EQ(nfrm->layer_index, ofrm_layer_index);
- EXPECT_EQ(nfrm->start_time, ofrm_frame_number);
+ EXPECT_EQ(nfrm->layer_index, ofrm_layer_index);
+ EXPECT_EQ(nfrm->start_time, ofrm_frame_number);
+ }
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs