Author: jvporter Date: 2009-11-10 16:50:22 -0600 (Tue, 10 Nov 2009) New Revision: 3323 Modified: cgm/trunk/itaps/iGeom_CGMA.cc Log: * Fix memory/sizing bugs in iGeom_getArr1stDrtv * Make offset arrays from iGeom_getArr1stDrtv have the usual semantics Modified: cgm/trunk/itaps/iGeom_CGMA.cc =================================================================== --- cgm/trunk/itaps/iGeom_CGMA.cc 2009-11-10 20:02:09 UTC (rev 3322) +++ cgm/trunk/itaps/iGeom_CGMA.cc 2009-11-10 22:50:22 UTC (rev 3323) @@ -4966,15 +4966,15 @@ int *v_offset_size, int* err) { - if (entity_handles_size != 2*uv_size) { + if (2*entity_handles_size != uv_size) { ERROR(iBase_INVALID_ENTITY_COUNT, "Mismatched input array sizes."); RETURN(iBase_INVALID_ENTITY_COUNT); } CHECK_SIZE( *drvt_u, double, 3*entity_handles_size ); CHECK_SIZE( *drvt_v, double, 3*entity_handles_size ); - CHECK_SIZE( *u_offset, int, entity_handles_size ); - CHECK_SIZE( *v_offset, int, entity_handles_size ); + CHECK_SIZE( *u_offset, int, entity_handles_size+1 ); + CHECK_SIZE( *v_offset, int, entity_handles_size+1 ); size_t u_step, du_step, init; if (storage_order == iBase_BLOCKED) { @@ -5015,15 +5015,18 @@ v += u_step; du_x += du_step; du_y += du_step; - du_y += du_step; + du_z += du_step; dv_x += du_step; dv_y += du_step; - dv_y += du_step; + dv_z += du_step; (*u_offset)[i] = off; (*v_offset)[i] = off; off += du_step; } + (*u_offset)[entity_handles_size] = off; + (*v_offset)[entity_handles_size] = off; + RETURN(iBase_SUCCESS); }
participants (1)
-
jvporter@wisc.edu