Commit: 36288aa5aedabace51913f724a3c8aae6e201e44 Author: YimingWu Date: Tue Apr 5 22:59:13 2022 +0800 Branches: temp-lineart-embree https://developer.blender.org/rB36288aa5aedabace51913f724a3c8aae6e201e44
LineArt: Working fix for new object loading =================================================================== M release/scripts/addons M source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c =================================================================== diff --git a/release/scripts/addons b/release/scripts/addons index c157125ace8..22c1eb5c3d5 160000 --- a/release/scripts/addons +++ b/release/scripts/addons @@ -1 +1 @@ -Subproject commit c157125ace858760138d2c3b99c0f45b45743e98 +Subproject commit 22c1eb5c3d505d85e953c3921317856af103a2eb diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c index 99764820d35..b69c20d2b21 100644 --- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c +++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c @@ -2338,6 +2338,12 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info, int allocate_la_e = edge_reduce.feat_edges; + if (!edge_pair_arr) { + edge_pair_alloc_len = 256; + edge_pair_arr = MEM_mallocN(sizeof(EdgeFacePair) * edge_pair_alloc_len, + "lineart edge_pair arr"); + } + /* Check for edge marks that would create feature edges. */ for (int i = 0; i < me->totedge; i++) { MEdge *medge = &me->medge[i]; @@ -2347,7 +2353,7 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info, if (eflag) { int min_edges_to_add = 0; void **eval; - if (!BLI_edgehash_ensure_p(edge_hash, medge->v1, medge->v2, &eval)) { + if (edge_hash == NULL || !BLI_edgehash_ensure_p(edge_hash, medge->v1, medge->v2, &eval)) { int pair_idx = edge_pair_arr_len++; /* Edge has not been added before, create a new pair. */ EdgeFacePair *pair = &edge_pair_arr[pair_idx]; @@ -2357,7 +2363,9 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info, pair->f1 = -1; pair->f2 = -1; pair->eflag = eflag; - *eval = POINTER_FROM_INT(pair_idx); + if (edge_hash) { + *eval = POINTER_FROM_INT(pair_idx); + } min_edges_to_add = 1; if (edge_pair_arr_len == edge_pair_alloc_len) { @@ -2387,7 +2395,9 @@ static void lineart_geometry_object_load_no_bmesh(LineartObjectInfo *ob_info, } } - BLI_edgehash_free(edge_hash, NULL); + if (edge_hash) { + BLI_edgehash_free(edge_hash, NULL); + } la_edge_arr = lineart_mem_acquire_thread(&re_buf->render_data_pool, sizeof(LineartEdge) * allocate_la_e); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs