eet: sync _evas_canvas3d_eet_file_free with upstream 65/88865/2
authorjiin.moon <jiin.moon@samsung.com>
Wed, 21 Sep 2016 02:58:46 +0000 (11:58 +0900)
committerjiin.moon <jiin.moon@samsung.com>
Wed, 21 Sep 2016 04:05:04 +0000 (13:05 +0900)
Previous api can make a crash issue becasue of wrong access.

Change-Id: I4cb01c275e0ed1c3bd66ba5f860470c8e1b18b69

src/lib/evas/canvas/evas_canvas3d_eet.c

index 281f69d..33a6923 100644 (file)
@@ -174,17 +174,25 @@ _evas_canvas3d_eet_descriptor_shutdown(void)
 void
 _evas_canvas3d_eet_file_free(void)
 {
-   free(eet_file->mesh->geometries[0].vertices);
-   free(eet_file->mesh->geometries);
-   free(eet_file->mesh->frames);
-   free(eet_file->mesh->materials[0].colors);
-   free(eet_file->mesh->materials);
-   free(eet_file->mesh);
-   free(eet_file->header->materials);
-   free(eet_file->header->geometries);
-   free(eet_file->header);
-   free(eet_file);
-
+   if (eet_file)
+     {
+        if (eet_file->mesh)
+          {
+             free(eet_file->mesh->geometries[0].vertices);
+             free(eet_file->mesh->geometries);
+             free(eet_file->mesh->frames);
+             free(eet_file->mesh->materials[0].colors);
+             free(eet_file->mesh->materials);
+             free(eet_file->mesh);
+          }
+        if (eet_file->header)
+          {
+             free(eet_file->header->materials);
+             free(eet_file->header->geometries);
+             free(eet_file->header);
+          }
+        free(eet_file);
+     }
    _evas_canvas3d_eet_descriptor_shutdown();
    eet_shutdown();
    eina_shutdown();