On 04/04/2014 03:28 AM, Juha-Pekka Heikkila wrote: > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikk...@gmail.com> > --- > src/mesa/program/symbol_table.c | 33 ++++++++++++++++++++++++++++++--- > 1 file changed, 30 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/program/symbol_table.c b/src/mesa/program/symbol_table.c > index 9462978..9c3556a 100644 > --- a/src/mesa/program/symbol_table.c > +++ b/src/mesa/program/symbol_table.c > @@ -172,9 +172,14 @@ _mesa_symbol_table_push_scope(struct _mesa_symbol_table > *table) > { > struct scope_level *const scope = calloc(1, sizeof(*scope)); > > - scope->next = table->current_scope; > - table->current_scope = scope; > - table->depth++; > + if (scope) { > + scope->next = table->current_scope; > + table->current_scope = scope; > + table->depth++; > + } > + else { > + _mesa_error_no_memory(__FUNCTION__); > + }
Previously, in a different patch, Matt (I think) I suggested using the idiom if (!scope) { _mesa_error_no_memory(__FUNCTION__); return; } and leaving the rest of the code alone. I agree. > } > > > @@ -254,6 +259,12 @@ _mesa_symbol_table_add_symbol(struct _mesa_symbol_table > *table, > > if (hdr == NULL) { > hdr = calloc(1, sizeof(*hdr)); > + > + if (hdr == NULL) { > + _mesa_error_no_memory(__FUNCTION__); > + return -1; > + } > + > hdr->name = strdup(name); Doesn't the strdup also need a NULL check? > > hash_table_insert(table->ht, hdr, hdr->name); > @@ -276,6 +287,12 @@ _mesa_symbol_table_add_symbol(struct _mesa_symbol_table > *table, > return -1; > > sym = calloc(1, sizeof(*sym)); > + Extra blank line here. > + if (sym == NULL) { > + _mesa_error_no_memory(__FUNCTION__); > + return -1; > + } > + > sym->next_with_same_name = hdr->symbols; > sym->next_with_same_scope = table->current_scope->symbols; > sym->hdr = hdr; > @@ -311,6 +328,11 @@ _mesa_symbol_table_add_global_symbol(struct > _mesa_symbol_table *table, > > if (hdr == NULL) { > hdr = calloc(1, sizeof(*hdr)); > + if (hdr == NULL) { > + _mesa_error_no_memory(__FUNCTION__); > + return -1; > + } > + > hdr->name = strdup(name); > > hash_table_insert(table->ht, hdr, hdr->name); > @@ -340,6 +362,11 @@ _mesa_symbol_table_add_global_symbol(struct > _mesa_symbol_table *table, > } > > sym = calloc(1, sizeof(*sym)); > + if (sym == NULL) { > + _mesa_error_no_memory(__FUNCTION__); > + return -1; > + } > + > sym->next_with_same_scope = top_scope->symbols; > sym->hdr = hdr; > sym->name_space = name_space; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev