From 56ef6cbe839a03937b7c25af3e98035f79c3f51f Mon Sep 17 00:00:00 2001 From: cedric Date: Tue, 29 Dec 2009 13:42:45 +0000 Subject: [PATCH] * eet_data: Don't fail on memory starvation. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eet@44755 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 3 +++ src/lib/eet_data.c | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 749af88..d729e06 100644 --- a/ChangeLog +++ b/ChangeLog @@ -292,3 +292,6 @@ * Add fully functionnal eet_node dump code. +2009-12-29 Cedric BAIL + + * Don't mess up when memory realloc failed during data descriptor creation. diff --git a/src/lib/eet_data.c b/src/lib/eet_data.c index ee9e4d1..7303ad0 100644 --- a/src/lib/eet_data.c +++ b/src/lib/eet_data.c @@ -1331,17 +1331,18 @@ eet_data_descriptor_element_add(Eet_Data_Descriptor *edd, int offset, int count, /* int counter_offset, */ - const char *counter_name /* Useless should go on a major release */, + const char *counter_name /* FIXME: Useless should go on a major release */, Eet_Data_Descriptor *subtype) { Eet_Data_Element *ede; + Eet_Data_Element *tmp; /* int l1, l2, p1, p2, i; char *ps;*/ - /* FIXME: Fail safely when realloc fail. */ edd->elements.num++; - edd->elements.set = realloc(edd->elements.set, edd->elements.num * sizeof(Eet_Data_Element)); - if (!edd->elements.set) return; + tmp = realloc(edd->elements.set, edd->elements.num * sizeof(Eet_Data_Element)); + if (!tmp) return ; + edd->elements.set = tmp; ede = &(edd->elements.set[edd->elements.num - 1]); ede->name = name; ede->directory_name_ptr = NULL; -- 2.7.4