Codechange: [Game] Pass the length instead of '\0' terminating (and undoing that) in the middle of a C-string

pull/332/head
rubidium42 3 years ago committed by rubidium42
parent 8a918ce170
commit 29f2bd27c4

@ -134,7 +134,7 @@ ScriptEventAdminPort::~ScriptEventAdminPort()
SQInteger ScriptEventAdminPort::GetObject(HSQUIRRELVM vm)
{
char *p = this->json;
const char *p = this->json;
if (this->ReadTable(vm, p) == nullptr) {
sq_pushnull(vm);
@ -144,9 +144,9 @@ SQInteger ScriptEventAdminPort::GetObject(HSQUIRRELVM vm)
return 1;
}
char *ScriptEventAdminPort::ReadString(HSQUIRRELVM vm, char *p)
const char *ScriptEventAdminPort::ReadString(HSQUIRRELVM vm, const char *p)
{
char *value = p;
const char *value = p;
bool escape = false;
for (;;) {
@ -168,14 +168,13 @@ char *ScriptEventAdminPort::ReadString(HSQUIRRELVM vm, char *p)
p++;
}
*p = '\0';
sq_pushstring(vm, value, -1);
*p++ = '"';
sq_pushstring(vm, value, p - value);
p++; // Step past the end-of-string marker (")
return p;
}
char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, char *p)
const char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, const char *p)
{
sq_newtable(vm);
@ -218,7 +217,7 @@ char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, char *p)
return p;
}
char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, char *p)
const char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, const char *p)
{
SKIP_EMPTY(p);
@ -257,7 +256,7 @@ char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, char *p)
sq_newarray(vm, 0);
/* Empty array? */
char *p2 = p + 1;
const char *p2 = p + 1;
SKIP_EMPTY(p2);
if (*p2 == ']') {
p = p2 + 1;

@ -860,21 +860,21 @@ private:
* @param vm The VM used.
* @param p The (part of the) JSON string reading.
*/
char *ReadTable(HSQUIRRELVM vm, char *p);
const char *ReadTable(HSQUIRRELVM vm, const char *p);
/**
* Read a value from a JSON string.
* @param vm The VM used.
* @param p The (part of the) JSON string reading.
*/
char *ReadValue(HSQUIRRELVM vm, char *p);
const char *ReadValue(HSQUIRRELVM vm, const char *p);
/**
* Read a string from a JSON string.
* @param vm The VM used.
* @param p The (part of the) JSON string reading.
*/
char *ReadString(HSQUIRRELVM vm, char *p);
const char *ReadString(HSQUIRRELVM vm, const char *p);
};
/**

Loading…
Cancel
Save