[brlcad-commits] SF.net SVN: brlcad:[33939] brlcad/trunk/src/libged/gqa.c
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <bo...@us...> - 2009-03-04 15:58:29
|
Revision: 33939 http://brlcad.svn.sourceforge.net/brlcad/?rev=33939&view=rev Author: bob1961 Date: 2009-03-04 15:58:17 +0000 (Wed, 04 Mar 2009) Log Message: ----------- Modified get_densities_from_database by copying the density data to a character array that is one byte bigger. This larger array gets passed to parse_densities_buffer which writes an EOS in buf[len] to make the code more succinct. Modified Paths: -------------- brlcad/trunk/src/libged/gqa.c Modified: brlcad/trunk/src/libged/gqa.c =================================================================== --- brlcad/trunk/src/libged/gqa.c 2009-03-03 23:18:24 UTC (rev 33938) +++ brlcad/trunk/src/libged/gqa.c 2009-03-04 15:58:17 UTC (rev 33939) @@ -891,6 +891,8 @@ struct directory *dp; struct rt_db_internal intern; struct rt_binunif_internal *bu; + int ret; + char *buf; dp = db_lookup(rtip->rti_dbip, "_DENSITIES", LOOKUP_QUIET); if (dp == (struct directory *)NULL) { @@ -911,7 +913,15 @@ RT_CHECK_BINUNIF (bu); - return parse_densities_buffer(bu->u.int8, bu->count); + /* Acquire one extra byte to accomodate parse_densities_buffer() + * (i.e. it wants to write an EOS in buf[bu->count]). + */ + buf = bu_malloc(bu->count+1, "density buffer"); + memcpy(buf, bu->u.int8, bu->count); + ret = parse_densities_buffer(buf, bu->count); + bu_free((genptr_t)buf, "density buffer"); + + return ret; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |