Revision: 41143
http://brlcad.svn.sourceforge.net/brlcad/?rev=41143&view=rev
Author: bob1961
Date: 2010-10-26 19:25:34 +0000 (Tue, 26 Oct 2010)
Log Message:
-----------
Added code to free memory in ged_obj.c:go_data_labels().
Modified Paths:
--------------
brlcad/trunk/src/libtclcad/ged_obj.c
Modified: brlcad/trunk/src/libtclcad/ged_obj.c
===================================================================
--- brlcad/trunk/src/libtclcad/ged_obj.c 2010-10-26 19:22:03 UTC (rev
41142)
+++ brlcad/trunk/src/libtclcad/ged_obj.c 2010-10-26 19:25:34 UTC (rev
41143)
@@ -2742,6 +2742,13 @@
const char **sub_av;
if (Tcl_SplitList(go_current_gop->go_interp, av[i], &sub_ac,
&sub_av) != TCL_OK) {
+ /*XXX Need a macro for the following lines. Do something
similar for the rest. */
+ bu_free((genptr_t)gdlsp->gdls_labels, "data labels");
+ bu_free((genptr_t)gdlsp->gdls_points, "data points");
+ gdlsp->gdls_labels = (char **)0;
+ gdlsp->gdls_points = (point_t *)0;
+ gdlsp->gdls_num_labels = 0;
+
bu_vls_printf(&gedp->ged_result_str, "%s",
Tcl_GetStringResult(go_current_gop->go_interp));
Tcl_Free((char *)av);
go_refresh_view(gdvp);
@@ -2749,6 +2756,13 @@
}
if (sub_ac != 2) {
+ /*XXX Need a macro for the following lines. Do something
similar for the rest. */
+ bu_free((genptr_t)gdlsp->gdls_labels, "data labels");
+ bu_free((genptr_t)gdlsp->gdls_points, "data points");
+ gdlsp->gdls_labels = (char **)0;
+ gdlsp->gdls_points = (point_t *)0;
+ gdlsp->gdls_num_labels = 0;
+
bu_vls_printf(&gedp->ged_result_str, "Each list element
must contain a label and a point (i.e. {{some label} {0 0 0}})");
Tcl_Free((char *)sub_av);
Tcl_Free((char *)av);
@@ -2762,6 +2776,7 @@
&gdlsp->gdls_points[i][Z]) != 3) {
bu_vls_printf(&gedp->ged_result_str, "bad data point -
%s\n", sub_av[1]);
+ /*XXX Need a macro for the following lines. Do something
similar for the rest. */
bu_free((genptr_t)gdlsp->gdls_labels, "data labels");
bu_free((genptr_t)gdlsp->gdls_points, "data points");
gdlsp->gdls_labels = (char **)0;
@@ -3039,7 +3054,7 @@
return BRLCAD_ERROR;
}
- if (sscanf(argv[3], "%d", &dindex) != 1)
+ if (sscanf(argv[3], "%d", &dindex) != 1 || dindex < 0)
goto bad;
if (argc == 5) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits