Fix memleaks and slightly improve perfs
[scilab.git] / scilab / modules / graphics / src / c / BuildObjects.c
index e26d489..c0ad2be 100644 (file)
@@ -592,6 +592,7 @@ char * allocatePolyline(char * pparentsubwinUID, double *pvecx, double *pvecy, d
         {
             deleteGraphicObject(pobjUID);
             deleteDataObject(pobjUID);
+           releaseGraphicObjectProperty(__GO_PARENT__, pobjUID, jni_string, 1);
             return NULL;
         }
 
@@ -601,6 +602,7 @@ char * allocatePolyline(char * pparentsubwinUID, double *pvecx, double *pvecy, d
         {
             deleteGraphicObject(pobjUID);
             deleteDataObject(pobjUID);
+           releaseGraphicObjectProperty(__GO_PARENT__, pobjUID, jni_string, 1);
             return NULL;
         }
 
@@ -661,6 +663,7 @@ char * allocatePolyline(char * pparentsubwinUID, double *pvecx, double *pvecy, d
         {
             deleteGraphicObject(pobjUID);
             deleteDataObject(pobjUID);
+           releaseGraphicObjectProperty(__GO_PARENT__, pobjUID, jni_string, 1);
             return NULL;
         }
     }
@@ -1396,6 +1399,7 @@ char *ConstructAxis(char *pparentsubwinUID, char dir, char tics, double *vx,
         if (tics_labels == NULL)
         {
             deleteGraphicObject(pobjUID);
+           releaseGraphicObjectProperty(__GO_PARENT__, pobjUID, jni_string, 1);
             return (char *)NULL;
         }
 
@@ -1660,6 +1664,7 @@ char *ConstructSegs(char *pparentsubwinUID, int type,
     if (arrowCoords == NULL)
     {
         deleteGraphicObject(pobjUID);
+       releaseGraphicObjectProperty(__GO_SEGS__, pobjUID, jni_string, 1);
         return (char *)NULL;
     }