Don't use VLA's in unit tests and API examples (#3002)

MSVC doesn't support C99 VLA (variable-length array).
Use fixed size arrays in API examples and use JERRY_VLA macro
in unit tests to make these tests buildable on Windows too.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác oszi@inf.u-szeged.hu
This commit is contained in:
Csaba Osztrogonác
2019-08-06 13:01:01 +02:00
committed by Robert Fancsik
parent 051febfed7
commit 9c7511221f
10 changed files with 53 additions and 40 deletions
+24 -11
View File
@@ -634,14 +634,21 @@ print_value (const jerry_value_t jsvalue)
/* String value */
else if (jerry_value_is_string (value))
{
jerry_char_t str_buf_p[256];
/* Determining required buffer size */
jerry_size_t req_sz = jerry_get_string_size (value);
jerry_char_t str_buf_p[req_sz + 1];
jerry_string_to_char_buffer (value, str_buf_p, req_sz);
str_buf_p[req_sz] = '\0';
printf ("%s", (const char *) str_buf_p);
if (req_sz <= 255)
{
jerry_string_to_char_buffer (value, str_buf_p, req_sz);
str_buf_p[req_sz] = '\0';
printf ("%s", (const char *) str_buf_p);
}
else
{
printf ("error: buffer isn't big enough");
}
}
/* Object reference */
else if (jerry_value_is_object (value))
@@ -721,14 +728,21 @@ print_value (const jerry_value_t jsvalue)
/* String value */
else if (jerry_value_is_string (value))
{
jerry_char_t str_buf_p[256];
/* Determining required buffer size */
jerry_size_t req_sz = jerry_get_string_size (value);
jerry_char_t str_buf_p[req_sz + 1];
jerry_string_to_char_buffer (value, str_buf_p, req_sz);
str_buf_p[req_sz] = '\0';
printf ("%s", (const char *) str_buf_p);
if (req_sz <= 255)
{
jerry_string_to_char_buffer (value, str_buf_p, req_sz);
str_buf_p[req_sz] = '\0';
printf ("%s", (const char *) str_buf_p);
}
else
{
printf ("error: buffer isn't big enough");
}
}
/* Object reference */
else if (jerry_value_is_object (value))
@@ -737,7 +751,6 @@ print_value (const jerry_value_t jsvalue)
}
printf ("\n");
jerry_release_value (value);
}