Changeset 34906 in webkit for trunk/JavaScriptCore/kjs/JSVariableObject.h
- Timestamp:
- Jun 30, 2008, 10:45:21 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/JSVariableObject.h
r34838 r34906 30 30 #define JSVariableObject_h 31 31 32 #include "JSObject.h" 32 33 #include "Register.h" 33 34 #include "SymbolTable.h" 34 35 #include "UnusedParam.h" 35 #include "JSObject.h"36 #include <wtf/OwnPtr.h> 36 37 #include <wtf/UnusedParam.h> 37 38 … … 55 56 virtual bool getPropertyAttributes(ExecState*, const Identifier& propertyName, unsigned& attributes) const; 56 57 57 JSValue*& valueAt(int index) const { return registers()[index].u.jsValue; }58 JSValue*& valueAt(int index) const { return d->registers[index].u.jsValue; } 58 59 59 60 protected: … … 62 63 // size of a JSCell). 63 64 struct JSVariableObjectData { 64 JSVariableObjectData(SymbolTable* symbolTable_, Register* * registerBase_, int registerOffset_)65 JSVariableObjectData(SymbolTable* symbolTable_, Register* registers_) 65 66 : symbolTable(symbolTable_) 66 , registerBase(registerBase_) 67 , registerOffset(registerOffset_) 68 , registerArray(0) 67 , registers(registers_) 68 , registerArraySize(0) 69 69 { 70 70 ASSERT(symbolTable_); 71 71 } 72 72 73 ~JSVariableObjectData()74 {75 delete registerArray;76 }77 78 73 SymbolTable* symbolTable; // Maps name -> offset from "r" in register file. 79 80 Register** registerBase; // Location where a pointer to the base of the register file is stored. 81 int registerOffset; // Offset of "r", the register past the end of local storage. 82 83 Register* registerArray; // Independent copy of registers that were once stored in the register file. 74 Register* registers; // Pointers to the register past the end of local storage. (Local storage indexes are negative.) 75 OwnPtr<Register> registerArray; // Independent copy of registers, used when a variable object copies its registers out of the register file. 76 size_t registerArraySize; 84 77 }; 85 78 … … 95 88 } 96 89 97 Register** registerBase() const { return d->registerBase; }98 Register* registers() const { return *registerBase() + d->registerOffset; }99 100 90 void copyRegisterArray(Register* src, size_t count); 101 91 void setRegisterArray(Register* registerArray, size_t count);
Note:
See TracChangeset
for help on using the changeset viewer.