X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fnative%2Flocalref.hpp;h=9e8fb394dfa3a7a40f1e24f1718c4ac9e035e229;hb=0fecf3b0f32502f7a2c673f6d584894cf3ab93b0;hp=41142d9dbbd11fb263951753b05f9e871a9b5b50;hpb=f24e856e3c43a10dcc8581fd5ddbdda200d63aba;p=cacao.git diff --git a/src/native/localref.hpp b/src/native/localref.hpp index 41142d9db..9e8fb394d 100644 --- a/src/native/localref.hpp +++ b/src/native/localref.hpp @@ -1,6 +1,6 @@ /* src/native/localref.hpp - Management of local reference tables - Copyright (C) 1996-2005, 2006, 2007, 2008 + Copyright (C) 1996-2005, 2006, 2007, 2008, 2010 CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO This file is part of CACAO. @@ -35,7 +35,7 @@ typedef struct localref_table localref_table; #include "vm/types.h" #include "vm/global.h" -#include "vm/method.h" +#include "vm/method.hpp" /* localref_table ************************************************************** @@ -50,10 +50,15 @@ typedef struct localref_table localref_table; struct localref_table { s4 capacity; /* table size */ s4 used; /* currently used references */ + s4 firstfree; /* head of the free list */ + s4 hwm; /* high water mark */ s4 localframes; /* number of current frames */ s4 PADDING; /* 8-byte padding */ localref_table *prev; /* link to prev table (LocalFrame) */ - java_object_t *refs[LOCALREFTABLE_CAPACITY]; /* references */ + union { + java_object_t *ptr; + s4 nextfree; + } refs[LOCALREFTABLE_CAPACITY]; /* references */ };