From: <bi...@us...> - 2007-10-14 23:03:49
|
Revision: 973 http://oorexx.svn.sourceforge.net/oorexx/?rev=973&view=rev Author: bigrixx Date: 2007-10-14 16:03:37 -0700 (Sun, 14 Oct 2007) Log Message: ----------- Try to fix Linux punning warning messages. Modified Paths: -------------- sandbox/rick/warnings/kernel/parser/SourceFile.cpp sandbox/rick/warnings/kernel/platform/unix/ThreadSupport.hpp sandbox/rick/warnings/kernel/runtime/RexxCore.h sandbox/rick/warnings/kernel/runtime/RexxMemory.cpp sandbox/rick/warnings/kernel/runtime/RexxMemory.hpp Modified: sandbox/rick/warnings/kernel/parser/SourceFile.cpp =================================================================== --- sandbox/rick/warnings/kernel/parser/SourceFile.cpp 2007-10-14 22:36:37 UTC (rev 972) +++ sandbox/rick/warnings/kernel/parser/SourceFile.cpp 2007-10-14 23:03:37 UTC (rev 973) @@ -910,10 +910,14 @@ OrefSet(this, this->operators, new_queue()); OrefSet(this, this->literals, new_directory()); if (TheGlobalStrings != OREF_NULL) /* doing an image build? */ + { /* use this for the string table */ - OrefSet(this, this->strings, TheGlobalStrings); + OrefSet(this, this->strings, TheGlobalStrings); + } else - OrefSet(this, this->strings, new_directory()); + { + OrefSet(this, this->strings, new_directory()); + } /* get the clause object */ OrefSet(this, this->clause, new RexxClause()); } @@ -1426,8 +1430,10 @@ OrefSet(this, this->classes, classes); size = classes->size(); /* get the array size */ if (size == 0) /* nothing to process? */ + { /* clear out the classes list */ OrefSet(this, this->classes, OREF_NULL); + } else { /* have classes to process */ /* now traverse the classes array, */ for (i = 1; i <= size; i++) { /* building up a dependencies list */ @@ -2710,8 +2716,10 @@ this->variableindex = FIRST_VARIABLE_INDEX; OrefSet(this, this->exposed_variables, new_directory()); if (this->flags&_interpret) /* this an interpret? */ + { /* just use the existing label set */ OrefSet(this, this->labels, labels); + } else { /* create a new labels directory */ OrefSet(this, this->labels, new_directory()); Modified: sandbox/rick/warnings/kernel/platform/unix/ThreadSupport.hpp =================================================================== --- sandbox/rick/warnings/kernel/platform/unix/ThreadSupport.hpp 2007-10-14 22:36:37 UTC (rev 972) +++ sandbox/rick/warnings/kernel/platform/unix/ThreadSupport.hpp 2007-10-14 23:03:37 UTC (rev 973) @@ -48,8 +48,8 @@ #include <pthread.h> #include <stdlib.h> -void SysThreadInit(void); -int SysQueryThreadID(); +#include "RexxCore.h" + #ifdef AIX void RxLumCntl( long * result ); #endif Modified: sandbox/rick/warnings/kernel/runtime/RexxCore.h =================================================================== --- sandbox/rick/warnings/kernel/runtime/RexxCore.h 2007-10-14 22:36:37 UTC (rev 972) +++ sandbox/rick/warnings/kernel/runtime/RexxCore.h 2007-10-14 23:03:37 UTC (rev 973) @@ -154,7 +154,7 @@ /* Object Reference Assignment */ #ifndef CHECKOREFS -#define OrefSet(o,r,v) (OldSpace(o) ? memoryObject.setOref((RexxObject **)&(r),(RexxObject *)v) : (RexxObject *)(r=v)) +#define OrefSet(o,r,v) (OldSpace(o) ? memoryObject.setOref((void *)&(r),(RexxObject *)v) : (RexxObject *)(r=v)) #else #define OrefSet(o,r,v) memoryObject.checkSetOref((RexxObject *)o, (RexxObject **)&(r), (RexxObject *)v, __FILE__, __LINE__) #endif Modified: sandbox/rick/warnings/kernel/runtime/RexxMemory.cpp =================================================================== --- sandbox/rick/warnings/kernel/runtime/RexxMemory.cpp 2007-10-14 22:36:37 UTC (rev 972) +++ sandbox/rick/warnings/kernel/runtime/RexxMemory.cpp 2007-10-14 23:03:37 UTC (rev 973) @@ -1719,7 +1719,7 @@ } -RexxObject *RexxMemory::setOref(RexxObject **index, RexxObject *value) +RexxObject *RexxMemory::setOref(void *oldValue, RexxObject *value) /******************************************************************************/ /* Arguments: index-- OREF to set; value--OREF to which objr is set */ /* */ @@ -1728,11 +1728,14 @@ /******************************************************************************/ { RexxInteger *refcount; + RexxObject **oldValueLoc = (RexxObject **)oldValue; + RexxObject *index = *oldValueLoc; + if (old2new != OREF_NULL) { - if (!NullOrOld(*index)) { + if (!NullOrOld(index)) { /* decrement reference count for */ /**index */ - refcount = (RexxInteger *)this->old2new->get(*index); + refcount = (RexxInteger *)this->old2new->get(index); if (refcount != OREF_NULL) { /* found a value for refcount, now */ /*decrement the count */ @@ -1741,14 +1744,14 @@ /*no longer ref'ed from oldspace */ if (refcount->value == 0) { /* delete the entry for *index */ - this->old2new->remove(*index); + this->old2new->remove(index); } } else { /* naughty, naughty, someone didn't use SetOref */ printf("******** error in memory_setoref, unable to decrement refcount\n"); - printf("Naughty object reference is from: %p\n", index); - printf("Naughty object reference is at: %p\n", *index); - printf("Naughty object reference type is: %d\n", (*index)->behaviour->typenum()); + printf("Naughty object reference is from: %p\n", oldValueLoc); + printf("Naughty object reference is at: %p\n", index); + printf("Naughty object reference type is: %d\n", (index)->behaviour->typenum()); } } if (!NullOrOld(value)) { @@ -1770,7 +1773,7 @@ } /* now make the assignment, just */ /*like all this stuff never happened!*/ - return *index = value; + return *oldValueLoc = value; } Modified: sandbox/rick/warnings/kernel/runtime/RexxMemory.hpp =================================================================== --- sandbox/rick/warnings/kernel/runtime/RexxMemory.hpp 2007-10-14 22:36:37 UTC (rev 972) +++ sandbox/rick/warnings/kernel/runtime/RexxMemory.hpp 2007-10-14 23:03:37 UTC (rev 973) @@ -309,7 +309,7 @@ inline void setMarkTable(RexxTable *marktable) {this->markTable = marktable;}; inline void setOrphanCheck(BOOL orphancheck) {this->orphanCheck = orphancheck; }; RexxObject *checkSetOref(RexxObject *, RexxObject **, RexxObject *, char *, long); - RexxObject *setOref(RexxObject **index, RexxObject *value); + RexxObject *setOref(void *index, RexxObject *value); RexxStack *getFlattenStack(); void returnFlattenStack(); RexxObject *reclaim(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |