[brlcad-commits] SF.net SVN: brlcad:[70109] brlcad/trunk/src/libwdb/wdb.c
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <sta...@us...> - 2017-08-23 19:20:49
|
Revision: 70109 http://sourceforge.net/p/brlcad/code/70109 Author: starseeker Date: 2017-08-23 19:20:47 +0000 (Wed, 23 Aug 2017) Log Message: ----------- Sean debugged in-memory binunif object creation. Apparently this code path had never been tested, because there were multiple problems (failed to copy the data, incorrect object type assignments.) This gets things working. Modified Paths: -------------- brlcad/trunk/src/libwdb/wdb.c Modified: brlcad/trunk/src/libwdb/wdb.c =================================================================== --- brlcad/trunk/src/libwdb/wdb.c 2017-08-23 18:08:34 UTC (rev 70108) +++ brlcad/trunk/src/libwdb/wdb.c 2017-08-23 19:20:47 UTC (rev 70109) @@ -629,6 +629,7 @@ wdb_binunif data_type, long count) { + struct rt_db_internal intern; struct rt_binunif_internal *binunif; unsigned int minor_type = 0; int from_file = 0; @@ -819,8 +820,15 @@ binunif->magic = RT_BINUNIF_INTERNAL_MAGIC; binunif->type = minor_type; binunif->count = count; + binunif->u.int8 = (char *)bu_malloc(count * bytes, "init binunif container"); + + RT_DB_INTERNAL_INIT(&intern); + intern.idb_major_type = DB5_MAJORTYPE_BINARY_UNIF; + intern.idb_type = minor_type; + intern.idb_ptr = (void*)binunif; + intern.idb_meth = &OBJ[ID_BINUNIF]; memcpy(binunif->u.int8, data, count * bytes); - return wdb_export(wdbp, name, (void *)binunif, ID_BINUNIF, mk_conv2mm); + return wdb_put_internal(wdbp, name, &intern, mk_conv2mm); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |