Fix initialisation of vvp symbol table values.
In 64-bit Windows, an unsigned long is 32 bits, so initialising the num
member of the union did not properly initialise the ptr member. The num
member isn't actually needed, so eliminate it.
(cherry picked from commit c383d2048c)
This commit is contained in:
parent
a01b7054fc
commit
564c7404a6
|
|
@ -639,7 +639,7 @@ struct code_label_resolv_list_s: public resolv_list_s {
|
|||
bool code_label_resolv_list_s::resolve(bool mes)
|
||||
{
|
||||
symbol_value_t val = sym_get_value(sym_codespace, label());
|
||||
if (val.num) {
|
||||
if (val.ptr) {
|
||||
if (code->opcode == of_FORK)
|
||||
code->cptr2 = reinterpret_cast<vvp_code_t>(val.ptr);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ symbol_value_t symbol_table_s::find_value_(struct tree_node_*cur,
|
|||
|
||||
assert(0);
|
||||
{ symbol_value_t tmp;
|
||||
tmp.num = 0;
|
||||
tmp.ptr = 0;
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
|
|
@ -366,7 +366,7 @@ void symbol_table_s::sym_set_value(const char*key, symbol_value_t val)
|
|||
symbol_value_t symbol_table_s::sym_get_value(const char*key)
|
||||
{
|
||||
symbol_value_t def;
|
||||
def.num = 0;
|
||||
def.ptr = 0;
|
||||
|
||||
if (root->count == 0) {
|
||||
/* Handle the special case that this is the very first
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ typedef struct symbol_value_s {
|
|||
union {
|
||||
vvp_net_t*net;
|
||||
void*ptr;
|
||||
unsigned long num;
|
||||
};
|
||||
} symbol_value_t;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue