From 827b03a32c968d19b792af9a737c9d6b4a3c7053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guilloux?= Date: Wed, 2 Apr 2025 12:30:57 +0200 Subject: [PATCH] Fix: [Script] Prevent cloning of API instances (#13947) --- src/script/api/script_includes.hpp.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/script/api/script_includes.hpp.in b/src/script/api/script_includes.hpp.in index a24e66458a..6b2f27e5cb 100644 --- a/src/script/api/script_includes.hpp.in +++ b/src/script/api/script_includes.hpp.in @@ -7,6 +7,8 @@ /* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */ +#include "../script_fatalerror.hpp" + ${SQUIRREL_INCLUDES} static SQInteger ${APIUC}ObjectConstructor(HSQUIRRELVM vm) @@ -14,11 +16,17 @@ static SQInteger ${APIUC}ObjectConstructor(HSQUIRRELVM vm) return sq_throwerror(vm, "${APIUC}Object is not instantiable"); } +static SQInteger ${APIUC}ObjectCloned(HSQUIRRELVM) +{ + throw Script_FatalError("This instance is not cloneable"); +} + void SQ${APIUC}_RegisterAll(Squirrel *engine) { DefSQClass SQ${APIUC}Object("${APIUC}Object"); SQ${APIUC}Object.PreRegister(engine); SQ${APIUC}Object.DefSQAdvancedStaticMethod(engine, &${APIUC}ObjectConstructor, "constructor"); + SQ${APIUC}Object.DefSQAdvancedStaticMethod(engine, &${APIUC}ObjectCloned, "_cloned"); SQ${APIUC}Object.PostRegister(engine); ${SQUIRREL_REGISTER}