| 153 |
/* Remove content */ |
/* Remove content */ |
| 154 |
switch(env->gc_ref->item->type){ |
switch(env->gc_ref->item->type){ |
| 155 |
case string: |
case string: |
| 156 |
free(env->gc_ref->item->content.ptr); |
free(env->gc_ref->item->content.string); |
| 157 |
break; |
break; |
| 158 |
case tcons: |
case tcons: |
| 159 |
free(env->gc_ref->item->content.c); |
free(env->gc_ref->item->content.c); |
| 379 |
|
|
| 380 |
/* Look up the symbol name in the hash table */ |
/* Look up the symbol name in the hash table */ |
| 381 |
new_symbol= hash(env->symbols, in_string); |
new_symbol= hash(env->symbols, in_string); |
| 382 |
new_value->content.ptr= *new_symbol; |
new_value->content.sym= *new_symbol; |
| 383 |
|
|
| 384 |
if(*new_symbol==NULL) { /* If symbol was undefined */ |
if(*new_symbol==NULL) { /* If symbol was undefined */ |
| 385 |
|
|
| 393 |
strcpy((*new_symbol)->id, in_string); |
strcpy((*new_symbol)->id, in_string); |
| 394 |
|
|
| 395 |
/* Intern the new symbol in the hash table */ |
/* Intern the new symbol in the hash table */ |
| 396 |
new_value->content.ptr= *new_symbol; |
new_value->content.sym= *new_symbol; |
| 397 |
|
|
| 398 |
/* Try to load the symbol name as an external function, to see if |
/* Try to load the symbol name as an external function, to see if |
| 399 |
we should bind the symbol to a new function pointer value */ |
we should bind the symbol to a new function pointer value */ |