summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bytecode.c6
-rw-r--r--src/bytecode.h2
-rw-r--r--src/colm.h2
-rw-r--r--src/internal.h3
-rw-r--r--src/tree.c8
-rw-r--r--src/tree.h4
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
diff --git a/src/colm.h b/src/colm.h
index 8bfdb94e..12188bb7 100644
--- a/src/colm.h
+++ b/src/colm.h
@@ -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
diff --git a/src/tree.c b/src/tree.c
index 309594cc..5a76e304 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -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;
}
diff --git a/src/tree.h b/src/tree.h
index 3a422f64..527e460e 100644
--- a/src/tree.h
+++ b/src/tree.h
@@ -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 );