Skip to content

Commit 78df7a0

Browse files
committed
Move out 'jrt_read_from_buffer_by_offset' and 'jrt_write_to_buffer_by_offset' function definitions from header.
It's also required by the C99 standard. JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
1 parent b0bdf0e commit 78df7a0

File tree

2 files changed

+76
-54
lines changed

2 files changed

+76
-54
lines changed

jerry-core/jrt/jrt.cpp

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/* Copyright 2016 Samsung Electronics Co., Ltd.
2+
* Copyright 2016 University of Szeged.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#include "jrt.h"
18+
19+
/**
20+
* Read data from a specified buffer.
21+
*
22+
* Note:
23+
* Offset is in-out and is incremented if the read operation completes successfully.
24+
*
25+
* @return true, if read was successful, i.e. offset + data_size doesn't exceed buffer size,
26+
* false - otherwise.
27+
*/
28+
bool __attr_always_inline___
29+
jrt_read_from_buffer_by_offset (const uint8_t *buffer_p, /**< buffer */
30+
size_t buffer_size, /**< size of buffer */
31+
size_t *in_out_buffer_offset_p, /**< in: offset to read from,
32+
* out: offset, incremented on sizeof (T) */
33+
void *out_data_p, /**< out: data */
34+
size_t out_data_size) /**< size of the readable data */
35+
{
36+
if (*in_out_buffer_offset_p + out_data_size > buffer_size)
37+
{
38+
return false;
39+
}
40+
41+
memcpy (out_data_p, buffer_p + *in_out_buffer_offset_p, out_data_size);
42+
*in_out_buffer_offset_p += out_data_size;
43+
44+
return true;
45+
} /* jrt_read_from_buffer_by_offset */
46+
47+
/**
48+
* Write data to a specified buffer.
49+
*
50+
* Note:
51+
* Offset is in-out and is incremented if the write operation completes successfully.
52+
*
53+
* @return true, if write was successful, i.e. offset + data_size doesn't exceed buffer size,
54+
* false - otherwise.
55+
*/
56+
bool __attr_always_inline___
57+
jrt_write_to_buffer_by_offset (uint8_t *buffer_p, /**< buffer */
58+
size_t buffer_size, /**< size of buffer */
59+
size_t *in_out_buffer_offset_p, /**< in: offset to read from,
60+
* out: offset, incremented on sizeof (T) */
61+
const void *data_p, /**< data */
62+
size_t data_size) /**< size of the writable data */
63+
{
64+
if (*in_out_buffer_offset_p + data_size > buffer_size)
65+
{
66+
return false;
67+
}
68+
69+
memcpy (buffer_p + *in_out_buffer_offset_p, data_p, data_size);
70+
*in_out_buffer_offset_p += data_size;
71+
72+
return true;
73+
} /* jrt_write_to_buffer_by_offset */

jerry-core/jrt/jrt.h

Lines changed: 3 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -214,60 +214,9 @@ extern void __noreturn jerry_fatal (jerry_fatal_code_t);
214214
#define JERRY_MIN(v1, v2) ((v1 < v2) ? v1 : v2)
215215
#define JERRY_MAX(v1, v2) ((v1 < v2) ? v2 : v1)
216216

217-
/**
218-
* Read data from a specified buffer.
219-
*
220-
* Note:
221-
* Offset is in-out and is incremented if the read operation completes successfully.
222-
*
223-
* @return true, if read was successful, i.e. offset + data_size doesn't exceed buffer size,
224-
* false - otherwise.
225-
*/
226-
inline bool
227-
jrt_read_from_buffer_by_offset (const uint8_t *buffer_p, /**< buffer */
228-
size_t buffer_size, /**< size of buffer */
229-
size_t *in_out_buffer_offset_p, /**< in: offset to read from,
230-
* out: offset, incremented on sizeof (T) */
231-
void *out_data_p, /**< out: data */
232-
size_t out_data_size) /**< size of the readable data */
233-
{
234-
if (*in_out_buffer_offset_p + out_data_size > buffer_size)
235-
{
236-
return false;
237-
}
238-
239-
memcpy (out_data_p, buffer_p + *in_out_buffer_offset_p, out_data_size);
240-
*in_out_buffer_offset_p += out_data_size;
241-
242-
return true;
243-
} /* jrt_read_from_buffer_by_offset */
244217

245-
/**
246-
* Write data to a specified buffer.
247-
*
248-
* Note:
249-
* Offset is in-out and is incremented if the write operation completes successfully.
250-
*
251-
* @return true, if write was successful, i.e. offset + data_size doesn't exceed buffer size,
252-
* false - otherwise.
253-
*/
254-
inline bool
255-
jrt_write_to_buffer_by_offset (uint8_t *buffer_p, /**< buffer */
256-
size_t buffer_size, /**< size of buffer */
257-
size_t *in_out_buffer_offset_p, /**< in: offset to read from,
258-
* out: offset, incremented on sizeof (T) */
259-
const void *data_p, /**< data */
260-
size_t data_size) /**< size of the writable data */
261-
{
262-
if (*in_out_buffer_offset_p + data_size > buffer_size)
263-
{
264-
return false;
265-
}
266-
267-
memcpy (buffer_p + *in_out_buffer_offset_p, data_p, data_size);
268-
*in_out_buffer_offset_p += data_size;
269-
270-
return true;
271-
} /* jrt_write_to_buffer_by_offset */
218+
extern bool jrt_read_from_buffer_by_offset (const uint8_t *, size_t, size_t *, void *, size_t);
219+
220+
extern bool jrt_write_to_buffer_by_offset (uint8_t *, size_t, size_t *, const void *, size_t);
272221

273222
#endif /* !JERRY_GLOBALS_H */

0 commit comments

Comments
 (0)