mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
jerry_init: Calculate structure part address more safely. (#3545)
GCC 9.2 issues a warning-as-error trying to perform a large memset into what it thinks as a single field of a structure. So, instead of taking an address of that field, perform explicit address calculaton using structure address and offset of that field. Fixes #3544. JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
This commit is contained in:
parent
0d7f26e2c4
commit
b044d4ad76
@ -191,7 +191,7 @@ jerry_init (jerry_init_flag_t flags) /**< combination of Jerry flags */
|
||||
JERRY_ASSERT (!(JERRY_CONTEXT (status_flags) & ECMA_STATUS_API_AVAILABLE));
|
||||
|
||||
/* Zero out all non-external members. */
|
||||
memset (&JERRY_CONTEXT (JERRY_CONTEXT_FIRST_MEMBER), 0,
|
||||
memset ((char *) &JERRY_CONTEXT_STRUCT + offsetof (jerry_context_t, JERRY_CONTEXT_FIRST_MEMBER), 0,
|
||||
sizeof (jerry_context_t) - offsetof (jerry_context_t, JERRY_CONTEXT_FIRST_MEMBER));
|
||||
|
||||
JERRY_CONTEXT (jerry_init_flags) = flags;
|
||||
|
||||
@ -245,6 +245,7 @@ struct jerry_context_t
|
||||
* This part is for JerryScript which uses external context.
|
||||
*/
|
||||
|
||||
#define JERRY_CONTEXT_STRUCT (*jerry_port_get_current_context ())
|
||||
#define JERRY_CONTEXT(field) (jerry_port_get_current_context ()->field)
|
||||
|
||||
#if !ENABLED (JERRY_SYSTEM_ALLOCATOR)
|
||||
@ -274,6 +275,11 @@ struct jmem_heap_t
|
||||
*/
|
||||
extern jerry_context_t jerry_global_context;
|
||||
|
||||
/**
|
||||
* Config-independent name for context.
|
||||
*/
|
||||
#define JERRY_CONTEXT_STRUCT (jerry_global_context)
|
||||
|
||||
/**
|
||||
* Provides a reference to a field in the current context.
|
||||
*/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user