diff --git a/src/3rdparty/squirrel/include/squirrel.h b/src/3rdparty/squirrel/include/squirrel.h index d5ec13c119..7924dde346 100644 --- a/src/3rdparty/squirrel/include/squirrel.h +++ b/src/3rdparty/squirrel/include/squirrel.h @@ -238,7 +238,7 @@ void sq_newclosure(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars); SQRESULT sq_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask); SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx); void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len); -static inline void sq_pushstring(HSQUIRRELVM v, const std::string &str, SQInteger len = -1) { sq_pushstring(v, str.c_str(), len == -1 ? str.size() : len); } +static inline void sq_pushstring(HSQUIRRELVM v, const std::string &str, SQInteger len = -1) { sq_pushstring(v, str.data(), len == -1 ? str.size() : len); } void sq_pushfloat(HSQUIRRELVM v,SQFloat f); void sq_pushinteger(HSQUIRRELVM v,SQInteger n); void sq_pushbool(HSQUIRRELVM v,SQBool b); diff --git a/src/3rdparty/squirrel/squirrel/sqcompiler.cpp b/src/3rdparty/squirrel/squirrel/sqcompiler.cpp index f29cf34485..ab11a2ccd1 100644 --- a/src/3rdparty/squirrel/squirrel/sqcompiler.cpp +++ b/src/3rdparty/squirrel/squirrel/sqcompiler.cpp @@ -187,7 +187,7 @@ public: _ss(_vm)->_compilererrorhandler(_vm, compilererror.c_str(), type(_sourcename) == OT_STRING ? _stringval(_sourcename) : "unknown", _lex._currentline, _lex._currentcolumn); } - _vm->_lasterror = SQString::Create(_ss(_vm), compilererror.c_str(), -1); + _vm->_lasterror = SQString::Create(_ss(_vm), compilererror); return false; } } diff --git a/src/3rdparty/squirrel/squirrel/sqdebug.cpp b/src/3rdparty/squirrel/squirrel/sqdebug.cpp index 6a7eea5169..6ea958bbdf 100644 --- a/src/3rdparty/squirrel/squirrel/sqdebug.cpp +++ b/src/3rdparty/squirrel/squirrel/sqdebug.cpp @@ -66,7 +66,7 @@ SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos *si) void SQVM::Raise_Error(const std::string &msg) { - _lasterror = SQString::Create(_ss(this),msg.c_str(),-1); + _lasterror = SQString::Create(_ss(this),msg); } void SQVM::Raise_Error(SQObjectPtr &desc) @@ -79,9 +79,9 @@ SQString *SQVM::PrintObjVal(const SQObject &o) switch(type(o)) { case OT_STRING: return _string(o); case OT_INTEGER: - return SQString::Create(_ss(this), fmt::format("{}", _integer(o)).c_str()); + return SQString::Create(_ss(this), fmt::format("{}", _integer(o))); case OT_FLOAT: - return SQString::Create(_ss(this), fmt::format("{:.14g}", _float(o)).c_str()); + return SQString::Create(_ss(this), fmt::format("{:.14g}", _float(o))); default: return SQString::Create(_ss(this), GetTypeName(o)); } diff --git a/src/3rdparty/squirrel/squirrel/sqstring.h b/src/3rdparty/squirrel/squirrel/sqstring.h index a5f298e1e2..1d20d0b610 100644 --- a/src/3rdparty/squirrel/squirrel/sqstring.h +++ b/src/3rdparty/squirrel/squirrel/sqstring.h @@ -17,6 +17,7 @@ struct SQString : public SQRefCounted ~SQString(){} public: static SQString *Create(SQSharedState *ss, const SQChar *, SQInteger len = -1 ); + static SQString *Create(SQSharedState *ss, const std::string &str) { return Create(ss, str.data(), str.size()); } SQInteger Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval); void Release(); SQSharedState *_sharedstate; diff --git a/src/3rdparty/squirrel/squirrel/sqvm.cpp b/src/3rdparty/squirrel/squirrel/sqvm.cpp index a976a91093..977e9fa25c 100644 --- a/src/3rdparty/squirrel/squirrel/sqvm.cpp +++ b/src/3rdparty/squirrel/squirrel/sqvm.cpp @@ -291,7 +291,7 @@ void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res) default: str = fmt::format("({} : 0x{:08X})",GetTypeName(o),(size_t)(void*)_rawval(o)); } - res = SQString::Create(_ss(this),str.c_str()); + res = SQString::Create(_ss(this),str); }