/* chew
- Copyright (C) 1990-2019 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.
}
}
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
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