Article # 242, added by Geoworks, historical record
| first |
previous |
index |
next |
last |
BORLAND.C: Line 2491: assert(base == ((genptr)sos - scopeOff)) failed
BORLAND.C: Line 2491: assert(base == ((genptr)sos - scopeOff)) failed. This error is caused by the symbol for a variable being in a block that is not within the lexical scope of the variable. The most probable culprit for this is a source file that is too large. Try splitting the source into multiple files (this can also speed compilation as files that are unchanged between compilation do not need to be recompiled). There is a description of how to split your source file up into multiple files in the downloads section of the Geoworks web page http://www.geoworks.com/devrel/download.htm Some considerations when splitting up source code: - The standard paradigm we use for multiple files under GOC is to have all object declarations in one file and then spread method code for individual classes into separate files. - GLUE does not create the links between objects if they are in seperate source files. By keeping children in the same file as their parent (i.e., all objects that are statically connected should be in the same file) you don't have to use MSG_GEN_ADD_CHILD to dynamically link objects that should be linked, but were located in seperate source files. If the problem is not caused by an overly large source file, here are some other possible reasons for the problem: - if you are using a common variable name across multiple source files - if you have defined an extra-ordinarily large number of variables within a given scope. (Again, it's not clear how many is too many.)