diff --git a/doc/source/reference/language/classes.rst b/doc/source/reference/language/classes.rst index 81ee4c4..b9256c3 100644 --- a/doc/source/reference/language/classes.rst +++ b/doc/source/reference/language/classes.rst @@ -170,7 +170,7 @@ instead of curly brackets ``{}`` for the attribute declaration to increase reada This means that all rules that apply to tables apply to attributes. -Attributes can be retrieved through the built-in function ``classobj.getattributes(membername)`` (see built-in functions). +Attributes can be retrieved through the built-in function ``classobj.getattributes(membername)`` (see :ref:`built-in functions `). and can be modified/added through the built-in function ``classobj.setattributes(membername,val)``. the following code iterates through the attributes of all Foo members.:: diff --git a/squirrel/sqvm.cpp b/squirrel/sqvm.cpp index 051b94f..c70166d 100644 --- a/squirrel/sqvm.cpp +++ b/squirrel/sqvm.cpp @@ -715,7 +715,13 @@ bool SQVM::Execute(SQObjectPtr &closure, SQInteger nargs, SQInteger stackbase,SQ ci->_root = SQTrue; } break; - case ET_RESUME_GENERATOR: _generator(closure)->Resume(this, outres); ci->_root = SQTrue; traps += ci->_etraps; break; + case ET_RESUME_GENERATOR: + if(!_generator(closure)->Resume(this, outres)) { + return false; + } + ci->_root = SQTrue; + traps += ci->_etraps; + break; case ET_RESUME_VM: case ET_RESUME_THROW_VM: traps = _suspended_traps; @@ -1123,6 +1129,7 @@ exception_trap: return false; } assert(0); + return false; } bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr &constructor)