Fix memleaks and slightly improve perfs
[scilab.git] / scilab / modules / graphics / src / c / InitObjects.c
index e60e3df..fc96b08 100644 (file)
@@ -211,6 +211,7 @@ int C2F(graphicsmodels) (void)
 
     /* Sets the parent-child relationship between the default Figure and Axes */
     setGraphicObjectRelationship(pfiguremdlUID, paxesmdlUID);
+    releaseGraphicObjectProperty(-1, pfiguremdlUID, jni_string, 0);
 
     /* Axes Model properties */
 
@@ -247,6 +248,8 @@ int C2F(graphicsmodels) (void)
     firstPlot = 1;
     setGraphicObjectProperty(paxesmdlUID, __GO_FIRST_PLOT__, &firstPlot, jni_bool, 1);
 
+    releaseGraphicObjectProperty(-1, paxesmdlUID, jni_string, 0);
+
 #if 0
     ppaxesmdl->FirstPlot = TRUE;
 #endif
@@ -559,15 +562,19 @@ int InitAxesModel()
     /* Creates the Axes model's labels and sets the model as their parent */
     labelUID = initLabel(paxesmdlUID);
     setGraphicObjectProperty(paxesmdlUID, __GO_TITLE__, labelUID, jni_string, 1);
+    releaseGraphicObjectProperty(__GO_TITLE__, labelUID, jni_string, 0);
 
     labelUID = initLabel(paxesmdlUID);
     setGraphicObjectProperty(paxesmdlUID, __GO_X_AXIS_LABEL__, labelUID, jni_string, 1);
+    releaseGraphicObjectProperty(__GO_X_AXIS_LABEL__, labelUID, jni_string, 0);
 
     labelUID = initLabel(paxesmdlUID);
     setGraphicObjectProperty(paxesmdlUID, __GO_Y_AXIS_LABEL__, labelUID, jni_string, 1);
+    releaseGraphicObjectProperty(__GO_Y_AXIS_LABEL__, labelUID, jni_string, 0);
 
     labelUID = initLabel(paxesmdlUID);
     setGraphicObjectProperty(paxesmdlUID, __GO_Z_AXIS_LABEL__, labelUID, jni_string, 1);
+    releaseGraphicObjectProperty(__GO_Z_AXIS_LABEL__, labelUID, jni_string, 0);
 
     return 0;
 }