Eliminate early memory deallocations in case of NuttX and TizenRT (#2235)

The error value is released in the print_unhandled_exception function, however
that value is used and released later. This patch fixes this bug.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.uszeged@partner.samsung.com
This commit is contained in:
Roland Takacs
2018-03-06 08:22:22 +01:00
committed by Zoltan Herczeg
parent 63e3eaf087
commit 29b337d159
2 changed files with 6 additions and 2 deletions
+3 -1
View File
@@ -152,11 +152,13 @@ print_unhandled_exception (jerry_value_t error_value, /**< error value */
{ {
assert (jerry_value_has_error_flag (error_value)); assert (jerry_value_has_error_flag (error_value));
jerry_value_clear_error_flag (&error_value); error_value = jerry_get_value_without_error_flag (error_value);
jerry_value_t err_str_val = jerry_value_to_string (error_value); jerry_value_t err_str_val = jerry_value_to_string (error_value);
jerry_size_t err_str_size = jerry_get_string_size (err_str_val); jerry_size_t err_str_size = jerry_get_string_size (err_str_val);
jerry_char_t err_str_buf[256]; jerry_char_t err_str_buf[256];
jerry_release_value (error_value);
if (err_str_size >= 256) if (err_str_size >= 256)
{ {
const char msg[] = "[Error message too long]"; const char msg[] = "[Error message too long]";
@@ -130,11 +130,13 @@ print_unhandled_exception (jerry_value_t error_value, /**< error value */
{ {
assert (jerry_value_has_error_flag (error_value)); assert (jerry_value_has_error_flag (error_value));
jerry_value_clear_error_flag (&error_value); error_value = jerry_get_value_without_error_flag (error_value);
jerry_value_t err_str_val = jerry_value_to_string (error_value); jerry_value_t err_str_val = jerry_value_to_string (error_value);
jerry_size_t err_str_size = jerry_get_string_size (err_str_val); jerry_size_t err_str_size = jerry_get_string_size (err_str_val);
jerry_char_t err_str_buf[256]; jerry_char_t err_str_buf[256];
jerry_release_value (error_value);
if (err_str_size >= 256) if (err_str_size >= 256)
{ {
const char msg[] = "[Error message too long]"; const char msg[] = "[Error message too long]";