diff options
-rw-r--r-- | src/bytecode.c | 6 | ||||
-rw-r--r-- | src/bytecode.h | 2 | ||||
-rw-r--r-- | src/colm.h | 2 | ||||
-rw-r--r-- | src/internal.h | 3 | ||||
-rw-r--r-- | src/tree.c | 8 | ||||
-rw-r--r-- | src/tree.h | 4 |
6 files changed, 16 insertions, 9 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 8f0d3bec..8f889e9c 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -1305,7 +1305,7 @@ again: Tree *ptr = colm_tree_get_field( obj, field ); Tree *dval = 0; if ( ptr ) - dval = getPtrVal( ptr ); + dval = (Tree*)colm_get_pointer_val( (Pointer*)ptr ); vm_push( dval ); break; } @@ -1326,7 +1326,7 @@ again: /* Make it into a pointer. */ Tree *pointer = 0; if ( strct != 0 ) { - pointer = constructPointer( prg, (Tree*)strct ); + pointer = (Tree*) colm_construct_pointer( prg, (Value)strct ); treeUpref( pointer ); } @@ -2837,7 +2837,7 @@ again: debug( prg, REALM_BYTECODE, "IN_TREE_NEW \n" ); Tree *tree = vm_pop(); - Tree *res = constructPointer( prg, tree ); + Tree *res = (Tree*) colm_construct_pointer( prg, (Value)tree ); treeUpref( res ); vm_push( res ); break; diff --git a/src/bytecode.h b/src/bytecode.h index dda1c15d..163efc6c 100644 --- a/src/bytecode.h +++ b/src/bytecode.h @@ -19,6 +19,8 @@ extern "C" { typedef unsigned long ulong; typedef unsigned char uchar; +typedef unsigned long colm_value_t; + /* * 0x6e * 0xbc @@ -13,6 +13,8 @@ struct colm_sections; struct colm_tree; struct colm_location; +typedef unsigned long colm_value_t; + struct colm_tree { /* First four will be overlaid in other structures. */ diff --git a/src/internal.h b/src/internal.h index fc12fd68..a5fbd3b8 100644 --- a/src/internal.h +++ b/src/internal.h @@ -1,7 +1,10 @@ #ifndef _COLM_INTERNAL #define _COLM_INTERNAL +#include "colm.h" + typedef struct colm_struct Struct; typedef struct colm_program Program; +typedef unsigned long Value; #endif @@ -180,10 +180,10 @@ Tree *constructString( Program *prg, Head *s ) return (Tree*)str; } -Tree *constructPointer( Program *prg, Tree *tree ) +Pointer *colm_construct_pointer( Program *prg, Value value ) { Kid *kid = kidAllocate( prg ); - kid->tree = tree; + kid->tree = value; kid->next = prg->origHeap; prg->origHeap = kid; @@ -191,7 +191,7 @@ Tree *constructPointer( Program *prg, Tree *tree ) pointer->id = LEL_ID_PTR; pointer->value = kid; - return (Tree*)pointer; + return pointer; } Tree *constructTerm( Program *prg, Word id, Head *tokdata ) @@ -1288,7 +1288,7 @@ Tree *getFieldSplit( Program *prg, Tree *tree, Word field ) return split; } -Tree *getPtrVal( Pointer *ptr ) +Tree *colm_get_pointer_val( Pointer *ptr ) { return ptr->value->tree; } @@ -207,7 +207,7 @@ Kid *treeExtractChild( struct colm_program *prg, Tree *tree ); Kid *reverseKidList( Kid *kid ); Tree *constructInteger( struct colm_program *prg, long i ); -Tree *constructPointer( struct colm_program *prg, Tree *tree ); +Pointer *colm_construct_pointer( struct colm_program *prg, colm_value_t value ); Tree *constructTerm( struct colm_program *prg, Word id, Head *tokdata ); Tree *constructTree( struct colm_program *prg, Kid *kid, Tree **bindings, long pat ); @@ -228,7 +228,7 @@ void streamFree( struct colm_program *prg, Stream *s ); Tree *copyTree( struct colm_program *prg, Tree *tree, Kid *oldNextDown, Kid **newNextDown ); -Tree *getPtrVal( Pointer *ptr ); +Tree *colm_get_pointer_val( Pointer *ptr ); Tree *getPtrValSplit( struct colm_program *prg, Pointer *ptr ); Tree *colm_tree_get_field( Tree *tree, Word field ); Tree *getFieldSplit( struct colm_program *prg, Tree *tree, Word field ); |