/* chew
- Copyright (C) 1990-2017 Free Software Foundation, Inc.
+ Copyright (C) 1990-2020 Free Software Foundation, Inc.
Contributed by steve chamberlain @cygnus
This file is part of BFD, the Binary File Descriptor library.
delete_string (buffer)
string_type *buffer;
{
- if (buffer->ptr)
- free (buffer->ptr);
+ free (buffer->ptr);
buffer->ptr = NULL;
}
}
}
if (!*string)
- return 0;
+ {
+ *word = NULL;
+ return NULL;
+ }
word_start = string;
if (*string == '"')
if (*string)
return string + 1;
else
- return 0;
+ return NULL;
}
dict_type *root;
}
if (warning)
fprintf (stderr, "Can't find %s\n", word);
- return 0;
+ return NULL;
}
static void
{
dict_type *next;
- if (ptr->word)
- free (ptr->word);
+ free (ptr->word);
if (ptr->code)
{
int i;
- for (i = 0; i < ptr->code_length; i ++)
+ for (i = 0; i < ptr->code_end - 1; i ++)
if (ptr->code[i] == push_text
&& ptr->code[i + 1])
{
- free (ptr->code[i + 1] - 1);
+ free ((char *) ptr->code[i + 1] - 1);
++ i;
}
free (ptr->code);
}
static void
-perform ()
+perform (void)
{
tos = stack;
entry->code_length += 2;
entry->code =
(stinst_type *) realloc ((char *) (entry->code),
- entry->code_length * sizeof (word_type));
+ entry->code_length * sizeof (stinst_type));
}
entry->code[entry->code_end] = word;
{
free (word);
string = nextword (string, &word);
+ if (!string)
+ continue;
add_var (word);
string = nextword (string, &word);
}
/* Compile a word and add to dictionary. */
free (word);
string = nextword (string, &word);
+ if (!string)
+ continue;
ptr = newentry (word);
string = nextword (string, &word);
+ if (!string)
+ {
+ free (ptr->code);
+ free (ptr);
+ continue;
+ }
while (word[0] != ';')
{
}
add_to_definition (ptr, 0);
free (word);
- word = NULL;
string = nextword (string, &word);
}
else
fprintf (stderr, "syntax error at %s\n", string - 1);
}
}
- if (word)
- free (word);
+ free (word);
}
static void