<p>Denis 'GNUtoo' Carikli has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27810">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">util/bincfg: don't use sym_table shared variable<br><br>Change-Id: I652a8da75498f871a53eb7509f6145c4842e3373<br>Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org><br>---<br>M util/bincfg/bincfg.h<br>M util/bincfg/bincfg.y<br>2 files changed, 82 insertions(+), 60 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/10/27810/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/util/bincfg/bincfg.h b/util/bincfg/bincfg.h</span><br><span>index b8c6688..8e2038a 100644</span><br><span>--- a/util/bincfg/bincfg.h</span><br><span>+++ b/util/bincfg/bincfg.h</span><br><span>@@ -27,6 +27,8 @@</span><br><span> unsigned int value;</span><br><span> struct field *next;</span><br><span> };</span><br><span style="color: hsl(120, 100%, 40%);">+typedef struct field* field_t;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef struct field** field_ptr_t;</span><br><span> </span><br><span> /* Bit array intermediary representation */</span><br><span> struct blob {</span><br><span>@@ -37,13 +39,12 @@</span><br><span> unsigned int lenactualblob;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static struct field *putsym (char const *, unsigned int);</span><br><span style="color: hsl(0, 100%, 40%);">-static struct field *getsym (char const *);</span><br><span style="color: hsl(0, 100%, 40%);">-static void yyerror (FILE* fp, char const *);</span><br><span style="color: hsl(0, 100%, 40%);">-int yylex (void);</span><br><span style="color: hsl(120, 100%, 40%);">+static field_t putsym(field_ptr_t sym_table_ptr, char const *, unsigned int);</span><br><span style="color: hsl(120, 100%, 40%);">+static field_t getsym(field_ptr_t sym_table_ptr, char const *);</span><br><span style="color: hsl(120, 100%, 40%);">+static void yyerror(FILE* fp, field_ptr_t, char const *);</span><br><span style="color: hsl(120, 100%, 40%);">+int yylex(void);</span><br><span> </span><br><span> static struct blob *binary;</span><br><span style="color: hsl(0, 100%, 40%);">-static struct field *sym_table;</span><br><span style="color: hsl(0, 100%, 40%);">-static struct field *sym_table_tail;</span><br><span style="color: hsl(120, 100%, 40%);">+static field_t sym_table_tail;</span><br><span> </span><br><span> #endif /* __BINCFG_H */</span><br><span>diff --git a/util/bincfg/bincfg.y b/util/bincfg/bincfg.y</span><br><span>index 8be11e9..851d9f5 100644</span><br><span>--- a/util/bincfg/bincfg.y</span><br><span>+++ b/util/bincfg/bincfg.y</span><br><span>@@ -59,10 +59,12 @@</span><br><span> binary->bloblen += w;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void set_bitfield(char *name, unsigned int value)</span><br><span style="color: hsl(120, 100%, 40%);">+static void set_bitfield(field_ptr_t sym_table_ptr, char *name,</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int value)</span><br><span> {</span><br><span> unsigned long long i;</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *bf = getsym (name);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ struct field *bf = getsym(sym_table_ptr, name);</span><br><span> if (bf) {</span><br><span> bf->value = value & 0xffffffff;</span><br><span> i = (1 << bf->width) - 1;</span><br><span>@@ -78,28 +80,30 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void set_bitfield_array(char *name, unsigned int n, unsigned int value)</span><br><span style="color: hsl(120, 100%, 40%);">+static void set_bitfield_array(field_ptr_t sym_table_ptr, char *name,</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int n, unsigned int value)</span><br><span> {</span><br><span> unsigned int i;</span><br><span> unsigned long len = strlen (name);</span><br><span> char *namen = (char *) malloc ((len + 9) * sizeof (char));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> check_pointer(namen);</span><br><span> for (i = 0; i < n; i++) {</span><br><span> snprintf (namen, len + 8, "%s%x", name, i);</span><br><span style="color: hsl(0, 100%, 40%);">- set_bitfield (namen, value);</span><br><span style="color: hsl(120, 100%, 40%);">+ set_bitfield (sym_table_ptr, namen, value);</span><br><span> }</span><br><span> free(namen);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void create_new_bitfield(char *name, unsigned int width)</span><br><span style="color: hsl(120, 100%, 40%);">+static void create_new_bitfield(field_ptr_t sym_table_ptr, char *name, unsigned int width)</span><br><span> {</span><br><span> struct field *bf;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if (!(bf = putsym (name, width))) return;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!(bf = putsym (sym_table_ptr, name, width))) return;</span><br><span> //fprintf(stderr, "Added bitfield `%s` : %d\n", bf->name, width);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void create_new_bitfields(char *name, unsigned int n, unsigned int width)</span><br><span style="color: hsl(120, 100%, 40%);">+static void create_new_bitfields(field_ptr_t sym_table_ptr, char *name, unsigned int n, unsigned int width)</span><br><span> {</span><br><span> unsigned int i;</span><br><span> unsigned long len = strlen (name);</span><br><span>@@ -107,51 +111,56 @@</span><br><span> check_pointer(namen);</span><br><span> for (i = 0; i < n; i++) {</span><br><span> snprintf (namen, len + 8, "%s%x", name, i);</span><br><span style="color: hsl(0, 100%, 40%);">- create_new_bitfield (namen, width);</span><br><span style="color: hsl(120, 100%, 40%);">+ create_new_bitfield (sym_table_ptr, namen, width);</span><br><span> }</span><br><span> free(namen);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static struct field *putsym (char const *sym_name, unsigned int w)</span><br><span style="color: hsl(120, 100%, 40%);">+static field_t putsym (field_ptr_t sym_table_ptr, char const *sym_name,</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int w)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- if (getsym(sym_name)) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (getsym(sym_table_ptr, sym_name)) {</span><br><span> fprintf(stderr, "Cannot add duplicate named bitfield `%s`\n",</span><br><span> sym_name);</span><br><span> return 0;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptr = (struct field *) malloc (sizeof (struct field));</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptr = (field_t ) malloc (sizeof (struct field));</span><br><span> check_pointer(ptr);</span><br><span> ptr->name = (char *) malloc (strlen (sym_name) + 1);</span><br><span> check_pointer(ptr->name);</span><br><span> strcpy (ptr->name, sym_name);</span><br><span> ptr->width = w;</span><br><span> ptr->value = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- ptr->next = (struct field *)0;</span><br><span style="color: hsl(120, 100%, 40%);">+ ptr->next = (field_t)0;</span><br><span> if (sym_table_tail) {</span><br><span> sym_table_tail->next = ptr;</span><br><span> } else {</span><br><span style="color: hsl(0, 100%, 40%);">- sym_table = ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ *sym_table_ptr = ptr;</span><br><span> }</span><br><span> sym_table_tail = ptr;</span><br><span> return ptr;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static struct field *getsym (char const *sym_name)</span><br><span style="color: hsl(120, 100%, 40%);">+static field_t getsym (field_ptr_t sym_table_ptr, char const *sym_name)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptr;</span><br><span style="color: hsl(0, 100%, 40%);">- for (ptr = sym_table; ptr != (struct field *) 0;</span><br><span style="color: hsl(0, 100%, 40%);">- ptr = (struct field *)ptr->next) {</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t sym_table = *sym_table_ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ for (ptr = sym_table; ptr != (field_t ) 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ ptr = (field_t )ptr->next) {</span><br><span> if (strcmp (ptr->name, sym_name) == 0)</span><br><span> return ptr;</span><br><span> }</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void dump_all_values (void)</span><br><span style="color: hsl(120, 100%, 40%);">+static void dump_all_values (field_ptr_t sym_table_ptr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptr;</span><br><span style="color: hsl(0, 100%, 40%);">- for (ptr = sym_table; ptr != (struct field *) 0;</span><br><span style="color: hsl(0, 100%, 40%);">- ptr = (struct field *)ptr->next) {</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t sym_table = *sym_table_ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ for (ptr = sym_table; ptr != (field_t ) 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ ptr = (field_t )ptr->next) {</span><br><span> fprintf(stderr, "%s = %d (%d bits)\n",</span><br><span> ptr->name,</span><br><span> ptr->value,</span><br><span>@@ -159,17 +168,19 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void empty_field_table(void)</span><br><span style="color: hsl(120, 100%, 40%);">+static void empty_field_table(field_ptr_t sym_table_ptr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptr;</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptrnext;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptrnext;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- for (ptr = sym_table; ptr != (struct field *) 0; ptr = ptrnext) {</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t sym_table = *sym_table_ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ for (ptr = sym_table; ptr != (field_t ) 0; ptr = ptrnext) {</span><br><span> if (ptr) {</span><br><span> ptrnext = ptr->next;</span><br><span> free(ptr);</span><br><span> } else {</span><br><span style="color: hsl(0, 100%, 40%);">- ptrnext = (struct field *) 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ ptrnext = (field_t ) 0;</span><br><span> }</span><br><span> }</span><br><span> sym_table = 0;</span><br><span>@@ -190,7 +201,7 @@</span><br><span> binary->blb[0] = VALID_BIT;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void interpret_next_blob_value (struct field *f)</span><br><span style="color: hsl(120, 100%, 40%);">+static void interpret_next_blob_value (field_t f)</span><br><span> {</span><br><span> unsigned int i;</span><br><span> unsigned int v = 0;</span><br><span>@@ -208,10 +219,12 @@</span><br><span> }</span><br><span> </span><br><span> /* {}%BIN -> {} */</span><br><span style="color: hsl(0, 100%, 40%);">-static void generate_setter_bitfields(FILE* fp, unsigned char *bin)</span><br><span style="color: hsl(120, 100%, 40%);">+static void generate_setter_bitfields(FILE* fp, field_ptr_t sym_table_ptr,</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned char *bin)</span><br><span> {</span><br><span> unsigned int i;</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t sym_table = *sym_table_ptr;</span><br><span> </span><br><span> /* Convert bytes to bit array */</span><br><span> for (i = 0; i < binary->lenactualblob; i++) {</span><br><span>@@ -224,7 +237,7 @@</span><br><span> fprintf (fp, "# AUTOGENERATED SETTER BY BINCFG\n{\n");</span><br><span> </span><br><span> /* Traverse spec and output bitfield setters based on blob values */</span><br><span style="color: hsl(0, 100%, 40%);">- for (ptr = sym_table; ptr != (struct field *) 0; ptr = ptr->next) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (ptr = sym_table; ptr != (field_t ) 0; ptr = ptr->next) {</span><br><span> </span><br><span> interpret_next_blob_value(ptr);</span><br><span> fprintf (fp, "\t\"%s\" = 0x%x,\n", ptr->name, ptr->value);</span><br><span>@@ -233,15 +246,18 @@</span><br><span> fprintf (fp, "\n}\n");</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void generate_binary_with_gbe_checksum(FILE* fp)</span><br><span style="color: hsl(120, 100%, 40%);">+static void generate_binary_with_gbe_checksum(FILE* fp,</span><br><span style="color: hsl(120, 100%, 40%);">+ field_ptr_t sym_table_ptr)</span><br><span> {</span><br><span> int i;</span><br><span> unsigned short checksum;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ field_t sym_table = *sym_table_ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* traverse spec, push to blob and add up for checksum */</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptr;</span><br><span> unsigned int uptochksum = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- for (ptr = sym_table; ptr != (struct field *) 0; ptr = ptr->next) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (ptr = sym_table; ptr != (field_t ) 0; ptr = ptr->next) {</span><br><span> if (strcmp (ptr->name, "checksum_gbe") == 0) {</span><br><span> /* Stop traversing because we hit checksum */</span><br><span> ptr = ptr->next;</span><br><span>@@ -277,14 +293,14 @@</span><br><span> checksum = (0xbaba - binary->checksum) & 0xffff;</span><br><span> </span><br><span> /* Now write checksum */</span><br><span style="color: hsl(0, 100%, 40%);">- set_bitfield ("checksum_gbe", checksum);</span><br><span style="color: hsl(120, 100%, 40%);">+ set_bitfield (sym_table_ptr, "checksum_gbe", checksum);</span><br><span> </span><br><span> fprintf(fp, "%c", checksum & 0xff);</span><br><span> fprintf(fp, "%c", (checksum & 0xff00) >> 8);</span><br><span> </span><br><span> append_field_to_blob (value_to_bits(checksum, 16), 16);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- for (; ptr != (struct field *) 0; ptr = ptr->next) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (; ptr != (field_t ) 0; ptr = ptr->next) {</span><br><span> append_field_to_blob (</span><br><span> value_to_bits(ptr->value, ptr->width), ptr->width);</span><br><span> }</span><br><span>@@ -305,10 +321,11 @@</span><br><span> }</span><br><span> </span><br><span> /* {}{} -> BIN */</span><br><span style="color: hsl(0, 100%, 40%);">-static void generate_binary(FILE* fp)</span><br><span style="color: hsl(120, 100%, 40%);">+static void generate_binary(FILE* fp, field_ptr_t sym_table_ptr)</span><br><span> {</span><br><span> unsigned int i;</span><br><span style="color: hsl(0, 100%, 40%);">- struct field *ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t ptr;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t sym_table = *sym_table_ptr;</span><br><span> </span><br><span> if (binary->bloblen % 8) {</span><br><span> fprintf (stderr,</span><br><span>@@ -316,13 +333,13 @@</span><br><span> exit (1);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if (getsym ("checksum_gbe")) {</span><br><span style="color: hsl(0, 100%, 40%);">- generate_binary_with_gbe_checksum(fp);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (getsym (sym_table_ptr, "checksum_gbe")) {</span><br><span style="color: hsl(120, 100%, 40%);">+ generate_binary_with_gbe_checksum(fp, sym_table_ptr);</span><br><span> return;</span><br><span> }</span><br><span> </span><br><span> /* traverse spec, push to blob */</span><br><span style="color: hsl(0, 100%, 40%);">- for (ptr = sym_table; ptr != (struct field *) 0; ptr = ptr->next) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (ptr = sym_table; ptr != (field_t ) 0; ptr = ptr->next) {</span><br><span> append_field_to_blob (</span><br><span> value_to_bits(ptr->value, ptr->width),</span><br><span> ptr->width);</span><br><span>@@ -353,7 +370,7 @@</span><br><span> unsigned char u8;</span><br><span> unsigned char *u8array;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-%parse-param {FILE* fp}</span><br><span style="color: hsl(120, 100%, 40%);">+%parse-param {FILE* fp} {struct field** sym_table_ptr}</span><br><span> </span><br><span> %token <str> name</span><br><span> %token <u32> val</span><br><span>@@ -372,13 +389,13 @@</span><br><span> </span><br><span> input:</span><br><span> /* empty */</span><br><span style="color: hsl(0, 100%, 40%);">-| input spec setter eof { empty_field_table(); YYACCEPT;}</span><br><span style="color: hsl(120, 100%, 40%);">+| input spec setter eof { empty_field_table(sym_table_ptr); YYACCEPT;}</span><br><span> | input spec blob { fprintf (stderr, "Parsed all bytes\n");</span><br><span style="color: hsl(0, 100%, 40%);">- empty_field_table(); YYACCEPT;}</span><br><span style="color: hsl(120, 100%, 40%);">+ empty_field_table(sym_table_ptr); YYACCEPT;}</span><br><span> ;</span><br><span> </span><br><span> blob:</span><br><span style="color: hsl(0, 100%, 40%);">- '%' eof { generate_setter_bitfields(fp,</span><br><span style="color: hsl(120, 100%, 40%);">+ '%' eof { generate_setter_bitfields(fp, sym_table_ptr,</span><br><span> binary->actualblob); }</span><br><span> ;</span><br><span> </span><br><span>@@ -394,14 +411,15 @@</span><br><span> ;</span><br><span> </span><br><span> specpair:</span><br><span style="color: hsl(0, 100%, 40%);">- name ':' val { create_new_bitfield($1, $3); }</span><br><span style="color: hsl(0, 100%, 40%);">-| name '[' val ']' ':' val { create_new_bitfields($1, $3, $6); }</span><br><span style="color: hsl(120, 100%, 40%);">+ name ':' val { create_new_bitfield(sym_table_ptr, $1, $3); }</span><br><span style="color: hsl(120, 100%, 40%);">+| name '[' val ']' ':' val { create_new_bitfields(sym_table_ptr, $1, $3,</span><br><span style="color: hsl(120, 100%, 40%);">+ $6); }</span><br><span> ;</span><br><span> </span><br><span> setter:</span><br><span> '{' '}' { fprintf (stderr, "No values\n"); }</span><br><span> | '{' valuemembers '}' { fprintf (stderr, "Parsed all values\n");</span><br><span style="color: hsl(0, 100%, 40%);">- generate_binary(fp); }</span><br><span style="color: hsl(120, 100%, 40%);">+ generate_binary(fp, sym_table_ptr); }</span><br><span> ;</span><br><span> </span><br><span> valuemembers:</span><br><span>@@ -410,14 +428,15 @@</span><br><span> ;</span><br><span> </span><br><span> setpair:</span><br><span style="color: hsl(0, 100%, 40%);">- name '=' val { set_bitfield($1, $3); }</span><br><span style="color: hsl(0, 100%, 40%);">-| name '[' val ']' '=' val { set_bitfield_array($1, $3, $6); }</span><br><span style="color: hsl(120, 100%, 40%);">+name '=' val { set_bitfield(sym_table_ptr, $1, $3); }</span><br><span style="color: hsl(120, 100%, 40%);">+| name '[' val ']' '=' val { set_bitfield_array(sym_table_ptr, $1, $3,</span><br><span style="color: hsl(120, 100%, 40%);">+ $6); }</span><br><span> ;</span><br><span> </span><br><span> %%</span><br><span> </span><br><span> /* Called by yyparse on error. */</span><br><span style="color: hsl(0, 100%, 40%);">-static void yyerror (FILE* fp, char const *s)</span><br><span style="color: hsl(120, 100%, 40%);">+static void yyerror (FILE* fp, field_ptr_t sym_table_ptr, char const *s)</span><br><span> {</span><br><span> fprintf (stderr, "yyerror: %s\n", s);</span><br><span> }</span><br><span>@@ -426,9 +445,10 @@</span><br><span> void set_input_string(char* in);</span><br><span> </span><br><span> /* This function parses a string */</span><br><span style="color: hsl(0, 100%, 40%);">-static int parse_string(FILE* fp, unsigned char* in) {</span><br><span style="color: hsl(120, 100%, 40%);">+static int parse_string(FILE* fp, field_ptr_t sym_table_ptr, unsigned char* in)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span> set_input_string ((char *)in);</span><br><span style="color: hsl(0, 100%, 40%);">- return yyparse (fp);</span><br><span style="color: hsl(120, 100%, 40%);">+ return yyparse (fp, sym_table_ptr);</span><br><span> }</span><br><span> </span><br><span> static unsigned int loadfile (FILE* fp, char *file, char *filetype,</span><br><span>@@ -464,6 +484,7 @@</span><br><span> unsigned int pos = 0;</span><br><span> int ret = 0;</span><br><span> FILE* fp;</span><br><span style="color: hsl(120, 100%, 40%);">+ field_t sym_table;</span><br><span> </span><br><span> #if YYDEBUG == 1</span><br><span> yydebug = 1;</span><br><span>@@ -484,7 +505,7 @@</span><br><span> argv[3]);</span><br><span> exit(1);</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- ret = parse_string(fp, parsestring);</span><br><span style="color: hsl(120, 100%, 40%);">+ ret = parse_string(fp, &sym_table, parsestring);</span><br><span> free(parsestring);</span><br><span> } else if (argc == 5 && strcmp (argv[1], "-d") == 0) {</span><br><span> /* Decompile mode */</span><br><span>@@ -516,7 +537,7 @@</span><br><span> argv[4]);</span><br><span> exit(1);</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- ret = parse_string(fp, parsestring);</span><br><span style="color: hsl(120, 100%, 40%);">+ ret = parse_string(fp, &sym_table, parsestring);</span><br><span> free(parsestring);</span><br><span> free(binary->actualblob);</span><br><span> fclose(fp);</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27810">change 27810</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/27810"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I652a8da75498f871a53eb7509f6145c4842e3373 </div>
<div style="display:none"> Gerrit-Change-Number: 27810 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> </div>