mirror of https://github.com/OpenTTD/OpenTTD
Codechange: [Game] Pass the length instead of '\0' terminating (and undoing that) in the middle of a C-string
parent
8a918ce170
commit
29f2bd27c4
|
@ -134,7 +134,7 @@ ScriptEventAdminPort::~ScriptEventAdminPort()
|
||||||
|
|
||||||
SQInteger ScriptEventAdminPort::GetObject(HSQUIRRELVM vm)
|
SQInteger ScriptEventAdminPort::GetObject(HSQUIRRELVM vm)
|
||||||
{
|
{
|
||||||
char *p = this->json;
|
const char *p = this->json;
|
||||||
|
|
||||||
if (this->ReadTable(vm, p) == nullptr) {
|
if (this->ReadTable(vm, p) == nullptr) {
|
||||||
sq_pushnull(vm);
|
sq_pushnull(vm);
|
||||||
|
@ -144,9 +144,9 @@ SQInteger ScriptEventAdminPort::GetObject(HSQUIRRELVM vm)
|
||||||
return 1;
|
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;
|
bool escape = false;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
@ -168,14 +168,13 @@ char *ScriptEventAdminPort::ReadString(HSQUIRRELVM vm, char *p)
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
*p = '\0';
|
sq_pushstring(vm, value, p - value);
|
||||||
sq_pushstring(vm, value, -1);
|
p++; // Step past the end-of-string marker (")
|
||||||
*p++ = '"';
|
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, char *p)
|
const char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, const char *p)
|
||||||
{
|
{
|
||||||
sq_newtable(vm);
|
sq_newtable(vm);
|
||||||
|
|
||||||
|
@ -218,7 +217,7 @@ char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, char *p)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, char *p)
|
const char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, const char *p)
|
||||||
{
|
{
|
||||||
SKIP_EMPTY(p);
|
SKIP_EMPTY(p);
|
||||||
|
|
||||||
|
@ -257,7 +256,7 @@ char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, char *p)
|
||||||
sq_newarray(vm, 0);
|
sq_newarray(vm, 0);
|
||||||
|
|
||||||
/* Empty array? */
|
/* Empty array? */
|
||||||
char *p2 = p + 1;
|
const char *p2 = p + 1;
|
||||||
SKIP_EMPTY(p2);
|
SKIP_EMPTY(p2);
|
||||||
if (*p2 == ']') {
|
if (*p2 == ']') {
|
||||||
p = p2 + 1;
|
p = p2 + 1;
|
||||||
|
|
|
@ -860,21 +860,21 @@ private:
|
||||||
* @param vm The VM used.
|
* @param vm The VM used.
|
||||||
* @param p The (part of the) JSON string reading.
|
* @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.
|
* Read a value from a JSON string.
|
||||||
* @param vm The VM used.
|
* @param vm The VM used.
|
||||||
* @param p The (part of the) JSON string reading.
|
* @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.
|
* Read a string from a JSON string.
|
||||||
* @param vm The VM used.
|
* @param vm The VM used.
|
||||||
* @param p The (part of the) JSON string reading.
|
* @param p The (part of the) JSON string reading.
|
||||||
*/
|
*/
|
||||||
char *ReadString(HSQUIRRELVM vm, char *p);
|
const char *ReadString(HSQUIRRELVM vm, const char *p);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue