Evas 3d: Fix some potential crashes

Those were happening before the previous patches.
This commit is contained in:
Jean-Philippe Andre 2015-12-29 15:41:51 +09:00
parent 60e6030f36
commit b13502f20a
2 changed files with 21 additions and 18 deletions

View File

@ -189,25 +189,28 @@ _evas_canvas3d_eet_descriptor_shutdown()
void
_evas_canvas3d_eet_file_free(Evas_Canvas3D_File_Eet* eet_file)
{
if (eet_file->mesh)
if (eet_file)
{
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->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);
}
if (eet_file->header)
{
free(eet_file->header->materials);
free(eet_file->header->geometries);
free(eet_file->header);
}
free(eet_file);
eet_file = NULL;
_evas_canvas3d_eet_descriptor_shutdown();
eet_shutdown();
eina_shutdown();

View File

@ -115,9 +115,9 @@ evas_model_load_file_eet(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
eet_close(ef);
if ((eet_file->mesh == NULL) || (eet_file->header == NULL))
if (!eet_file || !eet_file->mesh || !eet_file->header)
{
ERR("Reading of file is failed.");
ERR("Failed to read model file");
_evas_canvas3d_eet_file_free(eet_file);
return;
}