Fix bug empity string
Added a control if the string in the build in funcion unicode() is empity
This commit is contained in:
+14
-1
@@ -58,18 +58,31 @@ static Object *bin_unicode(Runtime *runtime, Object **argv, unsigned int argc, E
|
|||||||
(void) runtime;
|
(void) runtime;
|
||||||
(void) error;
|
(void) error;
|
||||||
uint32_t ret = 0;
|
uint32_t ret = 0;
|
||||||
if(!Object_IsString(argv[0])){
|
|
||||||
|
if(!Object_IsString(argv[0]))
|
||||||
|
{
|
||||||
|
|
||||||
Error_Report(error, 0, "Argument #%d is not a string", 1);
|
Error_Report(error, 0, "Argument #%d is not a string", 1);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const char *string;
|
const char *string;
|
||||||
int n;
|
int n;
|
||||||
string = Object_ToString(argv[0],&n,Runtime_GetHeap(runtime),error);
|
string = Object_ToString(argv[0],&n,Runtime_GetHeap(runtime),error);
|
||||||
if (string == NULL)
|
if (string == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (strcmp("\0",string)== 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
Error_Report(error, 0, "Argument #%d is empty string", 1);
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int k = utf8_sequence_to_utf32_codepoint(string,n,&ret);
|
int k = utf8_sequence_to_utf32_codepoint(string,n,&ret);
|
||||||
|
|
||||||
assert(k>=0);
|
assert(k>=0);
|
||||||
|
|||||||
Reference in New Issue
Block a user