Changed the way object selectors are accessed, by removing the relevant defines and adding appropriate methods to the Object structure

svn-id: r44138
This commit is contained in:
Filippos Karapetis 2009-09-17 08:51:38 +00:00
parent 0a037ccc45
commit f890a69428
9 changed files with 97 additions and 69 deletions

View file

@ -81,8 +81,8 @@ int propertyOffsetToId(SegManager *segMan, int prop_ofs, reg_t objp) {
if (segMan->sciVersion() < SCI_VERSION_1_1)
selectoroffset = ((byte *)(obj->base_obj)) + SCRIPT_SELECTOR_OFFSET + selectors * 2;
else {
if (!(obj->_variables[SCRIPT_INFO_SELECTOR].offset & SCRIPT_INFO_CLASS)) {
obj = segMan->getObject(obj->_variables[SCRIPT_SUPERCLASS_SELECTOR]);
if (!(obj->getInfoSelector(version).offset & SCRIPT_INFO_CLASS)) {
obj = segMan->getObject(obj->getSuperClassSelector(version));
selectoroffset = (byte *)obj->base_vars;
} else
selectoroffset = (byte *)obj->base_vars;