Allocate buffers when the buffer pointer is requested (#4812)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2021-11-02 09:36:55 +01:00
committed by GitHub
parent 3ad76f932c
commit 960b99766c
4 changed files with 109 additions and 44 deletions
+20 -2
View File
@@ -376,6 +376,8 @@ main (void)
uint8_t *const data = jerry_get_arraybuffer_pointer (buffer);
TEST_ASSERT (data != NULL);
/* test memory read */
for (int i = 0; i < 20; i++)
{
@@ -472,6 +474,7 @@ main (void)
}
/* Test ArrayBuffer created in ECMAScript */
for (int i = 0; i < 3; i++)
{
const jerry_char_t source[] = TEST_STRING_LITERAL ("new ArrayBuffer(64)");
jerry_value_t arraybuffer = jerry_eval (source, sizeof (source) - 1, JERRY_PARSE_NO_OPTS);
@@ -479,8 +482,23 @@ main (void)
TEST_ASSERT (jerry_value_is_arraybuffer (arraybuffer));
TEST_ASSERT (!jerry_arraybuffer_has_buffer (arraybuffer));
uint8_t buf[2] = { 2, 3 };
TEST_ASSERT (jerry_arraybuffer_write (arraybuffer, 63, buf, 2) == 1);
if (i == 0)
{
uint8_t buf[2] = { 2, 3 };
TEST_ASSERT (jerry_arraybuffer_write (arraybuffer, 63, buf, 2) == 1);
}
else if (i == 1)
{
uint8_t buf[2] = { 1, 1 };
TEST_ASSERT (jerry_arraybuffer_read (arraybuffer, 63, buf, 2) == 1);
TEST_ASSERT (buf[0] == 0 && buf[1] == 1);
}
else
{
uint8_t *buffer_p = jerry_get_arraybuffer_pointer (arraybuffer);
TEST_ASSERT (buffer_p != NULL);
}
TEST_ASSERT (jerry_arraybuffer_has_buffer (arraybuffer));
jerry_release_value (arraybuffer);