1
0
Fork 0

Codechange: make SQString::Create that supports std::string and use that

pull/11045/head
Rubidium 2023-06-15 18:07:58 +02:00 committed by rubidium42
parent ea54408e1d
commit 4fbc81003f
5 changed files with 7 additions and 6 deletions

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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));
}

View File

@ -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;

View File

@ -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);
}