Fix clearing of error reference (#2131)

'ecma_clear_error_reference' must increase the reference of the returned
ecma value referenced by the error if there are more than one reference.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
This commit is contained in:
László Langó
2017-12-06 14:47:40 +01:00
committed by Dániel Bátyai
parent a8a6122a93
commit 1007b63024
2 changed files with 39 additions and 6 deletions
+3 -6
View File
@@ -1403,17 +1403,14 @@ ecma_clear_error_reference (ecma_value_t value)
JERRY_ASSERT (error_ref_p->refs > 0);
ecma_value_t referenced_value = error_ref_p->value;
if (error_ref_p->refs > 1)
{
error_ref_p->refs--;
}
else
{
jmem_pools_free (error_ref_p, sizeof (ecma_error_reference_t));
return ecma_copy_value (error_ref_p->value);
}
ecma_value_t referenced_value = error_ref_p->value;
jmem_pools_free (error_ref_p, sizeof (ecma_error_reference_t));
return referenced_value;
} /* ecma_clear_error_reference */