|
|
@@ -947,8 +947,11 @@ SQRESULT sq_newmember(HSQUIRRELVM v,SQInteger idx,SQBool bstatic)
|
|
|
if(sq_type(self) != OT_CLASS) return sq_throwerror(v, _SC("new member only works with classes"));
|
|
|
SQObjectPtr &key = v->GetUp(-3);
|
|
|
if(sq_type(key) == OT_NULL) return sq_throwerror(v, _SC("null key"));
|
|
|
- if(!v->NewSlotA(self,key,v->GetUp(-2),v->GetUp(-1),bstatic?true:false,false))
|
|
|
+ if(!v->NewSlotA(self,key,v->GetUp(-2),v->GetUp(-1),bstatic?true:false,false)) {
|
|
|
+ v->Pop(3);
|
|
|
return SQ_ERROR;
|
|
|
+ }
|
|
|
+ v->Pop(3);
|
|
|
return SQ_OK;
|
|
|
}
|
|
|
|
|
|
@@ -958,8 +961,11 @@ SQRESULT sq_rawnewmember(HSQUIRRELVM v,SQInteger idx,SQBool bstatic)
|
|
|
if(sq_type(self) != OT_CLASS) return sq_throwerror(v, _SC("new member only works with classes"));
|
|
|
SQObjectPtr &key = v->GetUp(-3);
|
|
|
if(sq_type(key) == OT_NULL) return sq_throwerror(v, _SC("null key"));
|
|
|
- if(!v->NewSlotA(self,key,v->GetUp(-2),v->GetUp(-1),bstatic?true:false,true))
|
|
|
+ if(!v->NewSlotA(self,key,v->GetUp(-2),v->GetUp(-1),bstatic?true:false,true)) {
|
|
|
+ v->Pop(3);
|
|
|
return SQ_ERROR;
|
|
|
+ }
|
|
|
+ v->Pop(3);
|
|
|
return SQ_OK;
|
|
|
}
|
|
|
|