Revert "Update to SQUIRREL 3.0.4"
[supertux.git] / external / squirrel / squirrel / sqclass.h
old mode 100644 (file)
new mode 100755 (executable)
index 996a3df..281b0fa
@@ -5,6 +5,11 @@
 struct SQInstance;\r
 \r
 struct SQClassMember {\r
+       SQClassMember(){}\r
+       SQClassMember(const SQClassMember &o) {\r
+               val = o.val;\r
+               attrs = o.attrs;\r
+       }\r
        SQObjectPtr val;\r
        SQObjectPtr attrs;\r
 };\r
@@ -45,14 +50,6 @@ public:
                }\r
                return false;\r
        }\r
-       bool GetConstructor(SQObjectPtr &ctor)\r
-       {\r
-               if(_constructoridx != -1) {\r
-                       ctor = _methods[_constructoridx].val;\r
-                       return true;\r
-               }\r
-               return false;\r
-       }\r
        bool SetAttributes(const SQObjectPtr &key,const SQObjectPtr &val);\r
        bool GetAttributes(const SQObjectPtr &key,SQObjectPtr &outval);\r
        void Lock() { _locked = true; if(_base) _base->Lock(); }\r
@@ -63,7 +60,6 @@ public:
        void Finalize();\r
 #ifndef NO_GARBAGE_COLLECTOR\r
        void Mark(SQCollectable ** );\r
-       SQObjectType GetType() {return OT_CLASS;}\r
 #endif\r
        SQInteger Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval);\r
        SQInstance *CreateInstance();\r
@@ -71,17 +67,16 @@ public:
        SQClass *_base;\r
        SQClassMemberVec _defaultvalues;\r
        SQClassMemberVec _methods;\r
-       SQObjectPtr _metamethods[MT_LAST];\r
+       SQObjectPtrVec _metamethods;\r
        SQObjectPtr _attributes;\r
        SQUserPointer _typetag;\r
        SQRELEASEHOOK _hook;\r
        bool _locked;\r
-       SQInteger _constructoridx;\r
        SQInteger _udsize;\r
 };\r
 \r
 #define calcinstancesize(_theclass_) \\r
-       (_theclass_->_udsize + sq_aligning(sizeof(SQInstance) +  (sizeof(SQObjectPtr)*(_theclass_->_defaultvalues.size()>0?_theclass_->_defaultvalues.size()-1:0))))\r
+       (_theclass_->_udsize + sizeof(SQInstance) + (sizeof(SQObjectPtr)*(_theclass_->_defaultvalues.size()>0?_theclass_->_defaultvalues.size()-1:0)))\r
 \r
 struct SQInstance : public SQDelegable \r
 {\r
@@ -143,7 +138,6 @@ public:
        void Finalize();\r
 #ifndef NO_GARBAGE_COLLECTOR \r
        void Mark(SQCollectable ** );\r
-       SQObjectType GetType() {return OT_INSTANCE;}\r
 #endif\r
        bool InstanceOf(SQClass *trg);\r
        bool GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res);\r