Changeset - r25558:490b113014ff
[Not reviewed]
master
0 5 0
Patric Stout - 3 years ago 2021-05-29 13:18:51
truebrain@openttd.org
Codechange: move casting a "const char *" to "char *" to the caller

It is not nice to have your definition say you won't change a value
while in fact the whole reason for your existance is to change it.
5 files changed with 9 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/script/api/script_text.cpp
Show inline comments
 
@@ -154,13 +154,13 @@ SQInteger ScriptText::_set(HSQUIRRELVM v
 
{
 
	int32 k;
 

	
 
	if (sq_gettype(vm, 2) == OT_STRING) {
 
		const SQChar *key_string;
 
		sq_getstring(vm, 2, &key_string);
 
		StrMakeValidInPlace(key_string);
 
		StrMakeValidInPlace(const_cast<char *>(key_string));
 

	
 
		if (strncmp(key_string, "param_", 6) != 0 || strlen(key_string) > 8) return SQ_ERROR;
 
		k = atoi(key_string + 6);
 
	} else if (sq_gettype(vm, 2) == OT_INTEGER) {
 
		SQInteger key;
 
		sq_getinteger(vm, 2, &key);
src/script/script_info.cpp
Show inline comments
 
@@ -119,13 +119,13 @@ SQInteger ScriptInfo::AddSetting(HSQUIRR
 

	
 
	/* Read the table, and find all properties we care about */
 
	sq_pushnull(vm);
 
	while (SQ_SUCCEEDED(sq_next(vm, -2))) {
 
		const SQChar *key;
 
		if (SQ_FAILED(sq_getstring(vm, -2, &key))) return SQ_ERROR;
 
		StrMakeValidInPlace(key);
 
		StrMakeValidInPlace(const_cast<char *>(key));
 

	
 
		if (strcmp(key, "name") == 0) {
 
			const SQChar *sqvalue;
 
			if (SQ_FAILED(sq_getstring(vm, -1, &sqvalue))) return SQ_ERROR;
 
			char *name = stredup(sqvalue);
 
			char *s;
 
@@ -138,13 +138,13 @@ SQInteger ScriptInfo::AddSetting(HSQUIRR
 
			config.name = name;
 
			items |= 0x001;
 
		} else if (strcmp(key, "description") == 0) {
 
			const SQChar *sqdescription;
 
			if (SQ_FAILED(sq_getstring(vm, -1, &sqdescription))) return SQ_ERROR;
 
			config.description = stredup(sqdescription);
 
			StrMakeValidInPlace(config.description);
 
			StrMakeValidInPlace(const_cast<char *>(config.description));
 
			items |= 0x002;
 
		} else if (strcmp(key, "min_value") == 0) {
 
			SQInteger res;
 
			if (SQ_FAILED(sq_getinteger(vm, -1, &res))) return SQ_ERROR;
 
			config.min_value = res;
 
			items |= 0x004;
 
@@ -223,13 +223,13 @@ SQInteger ScriptInfo::AddSetting(HSQUIRR
 
}
 

	
 
SQInteger ScriptInfo::AddLabels(HSQUIRRELVM vm)
 
{
 
	const SQChar *setting_name;
 
	if (SQ_FAILED(sq_getstring(vm, -2, &setting_name))) return SQ_ERROR;
 
	StrMakeValidInPlace(setting_name);
 
	StrMakeValidInPlace(const_cast<char *>(setting_name));
 

	
 
	ScriptConfigItem *config = nullptr;
 
	for (auto &item : this->config_list) {
 
		if (strcmp(item.name, setting_name) == 0) config = &item;
 
	}
 

	
 
@@ -250,13 +250,13 @@ SQInteger ScriptInfo::AddLabels(HSQUIRRE
 
		const SQChar *label;
 
		if (SQ_FAILED(sq_getstring(vm, -2, &key_string))) return SQ_ERROR;
 
		if (SQ_FAILED(sq_getstring(vm, -1, &label))) return SQ_ERROR;
 
		/* Because squirrel doesn't support identifiers starting with a digit,
 
		 * we skip the first character. */
 
		int key = atoi(key_string + 1);
 
		StrMakeValidInPlace(label);
 
		StrMakeValidInPlace(const_cast<char *>(label));
 

	
 
		/* !Contains() prevents stredup from leaking. */
 
		if (!config->labels->Contains(key)) config->labels->Insert(key, stredup(label));
 

	
 
		sq_pop(vm, 2);
 
	}
src/script/squirrel.cpp
Show inline comments
 
@@ -445,13 +445,13 @@ bool Squirrel::CallMethod(HSQOBJECT inst
 
bool Squirrel::CallStringMethodStrdup(HSQOBJECT instance, const char *method_name, const char **res, int suspend)
 
{
 
	HSQOBJECT ret;
 
	if (!this->CallMethod(instance, method_name, &ret, suspend)) return false;
 
	if (ret._type != OT_STRING) return false;
 
	*res = stredup(ObjectToString(&ret));
 
	StrMakeValidInPlace(*res);
 
	StrMakeValidInPlace(const_cast<char *>(*res));
 
	return true;
 
}
 

	
 
bool Squirrel::CallIntegerMethod(HSQOBJECT instance, const char *method_name, int *res, int suspend)
 
{
 
	HSQOBJECT ret;
src/string.cpp
Show inline comments
 
@@ -263,16 +263,16 @@ void StrMakeValidInPlace(char *str, cons
 
 * Scans the string for invalid characters and replaces then with a
 
 * question mark '?' (if not ignored).
 
 * Only use this function when you are sure the string ends with a '\0';
 
 * otherwise use StrMakeValidInPlace(str, last, settings) variant.
 
 * @param str The string (of which you are sure ends with '\0') to validate.
 
 */
 
void StrMakeValidInPlace(const char *str, StringValidationSettings settings)
 
void StrMakeValidInPlace(char *str, StringValidationSettings settings)
 
{
 
	/* We know it is '\0' terminated. */
 
	StrMakeValidInPlace(const_cast<char *>(str), str + strlen(str), settings);
 
	StrMakeValidInPlace(str, str + strlen(str), settings);
 
}
 

	
 
/**
 
 * Scans the string for invalid characters and replaces then with a
 
 * question mark '?' (if not ignored).
 
 * @param str The string to validate.
src/string_func.h
Show inline comments
 
@@ -38,13 +38,13 @@ int CDECL seprintf(char *str, const char
 
int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap) WARN_FORMAT(3, 0) NOACCESS(2);
 

	
 
char *CDECL str_fmt(const char *str, ...) WARN_FORMAT(1, 2);
 

	
 
void StrMakeValidInPlace(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) NOACCESS(2);
 
[[nodiscard]] std::string StrMakeValid(const std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK);
 
void StrMakeValidInPlace(const char *str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK);
 
void StrMakeValidInPlace(char *str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK);
 

	
 
void str_fix_scc_encoded(char *str, const char *last) NOACCESS(2);
 
void str_strip_colours(char *str);
 
bool strtolower(char *str);
 
bool strtolower(std::string &str, std::string::size_type offs = 0);
 

	
0 comments (0 inline, 0 general)