Browse Source

Merge pull request #32741 from qarmin/fix_string_utf_ascii

Don't use to_utf8() and to_ascii() on empty String
Rémi Verschelde 5 years ago
parent
commit
7f075e519a
1 changed files with 8 additions and 0 deletions
  1. 8 0
      core/variant_call.cpp

+ 8 - 0
core/variant_call.cpp

@@ -316,6 +316,10 @@ struct _VariantCall {
 	static void _call_String_to_ascii(Variant &r_ret, Variant &p_self, const Variant **p_args) {
 	static void _call_String_to_ascii(Variant &r_ret, Variant &p_self, const Variant **p_args) {
 
 
 		String *s = reinterpret_cast<String *>(p_self._data._mem);
 		String *s = reinterpret_cast<String *>(p_self._data._mem);
+		if (s->empty()) {
+			r_ret = PoolByteArray();
+			return;
+		}
 		CharString charstr = s->ascii();
 		CharString charstr = s->ascii();
 
 
 		PoolByteArray retval;
 		PoolByteArray retval;
@@ -331,6 +335,10 @@ struct _VariantCall {
 	static void _call_String_to_utf8(Variant &r_ret, Variant &p_self, const Variant **p_args) {
 	static void _call_String_to_utf8(Variant &r_ret, Variant &p_self, const Variant **p_args) {
 
 
 		String *s = reinterpret_cast<String *>(p_self._data._mem);
 		String *s = reinterpret_cast<String *>(p_self._data._mem);
+		if (s->empty()) {
+			r_ret = PoolByteArray();
+			return;
+		}
 		CharString charstr = s->utf8();
 		CharString charstr = s->utf8();
 
 
 		PoolByteArray retval;
 		PoolByteArray retval;