From 13ac66e67b63ab4138631d80eec2b1bd929a8902 Mon Sep 17 00:00:00 2001 From: dark Date: Tue, 29 May 2018 01:38:18 +0300 Subject: [PATCH 1/3] add return to non void (bool) function --- squirrel/sqvm.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/squirrel/sqvm.cpp b/squirrel/sqvm.cpp index 3cb643a..0f6fb3d 100644 --- a/squirrel/sqvm.cpp +++ b/squirrel/sqvm.cpp @@ -1098,6 +1098,7 @@ exception_trap: return false; } assert(0); + return false; } bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr &constructor) From abfe2752f177701ab42e3b7826d07f1e3fd3d3b0 Mon Sep 17 00:00:00 2001 From: Dwachs Date: Tue, 21 Feb 2023 09:07:12 +0100 Subject: [PATCH 2/3] FIX link in documentation of class attributes --- doc/source/reference/language/classes.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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.:: From 6ea6cff922977816ab6e9b2b919612bd44acce88 Mon Sep 17 00:00:00 2001 From: TobiasBohnen <1294616+TobiasBohnen@users.noreply.github.com> Date: Thu, 13 Apr 2023 22:41:04 +0200 Subject: [PATCH 3/3] fixed sq_resume sq_resume crashes (ci is null) when called on a dead generator. --- squirrel/sqvm.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/squirrel/sqvm.cpp b/squirrel/sqvm.cpp index 051b94f..489a0b4 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;