mirror of https://github.com/OpenTTD/OpenTTD
Codechange: make SQString::Create that supports std::string and use that
parent
ea54408e1d
commit
4fbc81003f
|
@ -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_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask);
|
||||||
SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx);
|
SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx);
|
||||||
void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len);
|
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_pushfloat(HSQUIRRELVM v,SQFloat f);
|
||||||
void sq_pushinteger(HSQUIRRELVM v,SQInteger n);
|
void sq_pushinteger(HSQUIRRELVM v,SQInteger n);
|
||||||
void sq_pushbool(HSQUIRRELVM v,SQBool b);
|
void sq_pushbool(HSQUIRRELVM v,SQBool b);
|
||||||
|
|
|
@ -187,7 +187,7 @@ public:
|
||||||
_ss(_vm)->_compilererrorhandler(_vm, compilererror.c_str(), type(_sourcename) == OT_STRING ? _stringval(_sourcename) : "unknown",
|
_ss(_vm)->_compilererrorhandler(_vm, compilererror.c_str(), type(_sourcename) == OT_STRING ? _stringval(_sourcename) : "unknown",
|
||||||
_lex._currentline, _lex._currentcolumn);
|
_lex._currentline, _lex._currentcolumn);
|
||||||
}
|
}
|
||||||
_vm->_lasterror = SQString::Create(_ss(_vm), compilererror.c_str(), -1);
|
_vm->_lasterror = SQString::Create(_ss(_vm), compilererror);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos *si)
|
||||||
|
|
||||||
void SQVM::Raise_Error(const std::string &msg)
|
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)
|
void SQVM::Raise_Error(SQObjectPtr &desc)
|
||||||
|
@ -79,9 +79,9 @@ SQString *SQVM::PrintObjVal(const SQObject &o)
|
||||||
switch(type(o)) {
|
switch(type(o)) {
|
||||||
case OT_STRING: return _string(o);
|
case OT_STRING: return _string(o);
|
||||||
case OT_INTEGER:
|
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:
|
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:
|
default:
|
||||||
return SQString::Create(_ss(this), GetTypeName(o));
|
return SQString::Create(_ss(this), GetTypeName(o));
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ struct SQString : public SQRefCounted
|
||||||
~SQString(){}
|
~SQString(){}
|
||||||
public:
|
public:
|
||||||
static SQString *Create(SQSharedState *ss, const SQChar *, SQInteger len = -1 );
|
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);
|
SQInteger Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval);
|
||||||
void Release();
|
void Release();
|
||||||
SQSharedState *_sharedstate;
|
SQSharedState *_sharedstate;
|
||||||
|
|
|
@ -291,7 +291,7 @@ void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res)
|
||||||
default:
|
default:
|
||||||
str = fmt::format("({} : 0x{:08X})",GetTypeName(o),(size_t)(void*)_rawval(o));
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue