diff --git a/jerry-core/parser/collections/array-list.cpp b/jerry-core/parser/collections/array-list.cpp index 4603fbf69..500bc3a6b 100644 --- a/jerry-core/parser/collections/array-list.cpp +++ b/jerry-core/parser/collections/array-list.cpp @@ -17,11 +17,8 @@ #include "mem-heap.h" #include "jrt-libc-includes.h" -#define ARRAY_LIST_MAGIC 0x39 - typedef struct { - uint8_t magic; uint8_t element_size; size_t len; size_t size; @@ -33,7 +30,6 @@ extract_header (array_list al) { JERRY_ASSERT (al != null_list); array_list_header *header = (array_list_header *) al; - JERRY_ASSERT (header->magic == ARRAY_LIST_MAGIC); return header; } @@ -119,7 +115,6 @@ array_list_init (uint8_t element_size) size_t size = mem_heap_recommend_allocation_size (sizeof (array_list_header)); array_list_header *header = (array_list_header *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM); memset (header, 0, size); - header->magic = ARRAY_LIST_MAGIC; header->element_size = element_size; header->len = 0; header->size = size; diff --git a/jerry-core/parser/collections/hash-table.cpp b/jerry-core/parser/collections/hash-table.cpp index 28544f13c..61f90292e 100644 --- a/jerry-core/parser/collections/hash-table.cpp +++ b/jerry-core/parser/collections/hash-table.cpp @@ -18,14 +18,11 @@ #include "mem-heap.h" #include "jrt-libc-includes.h" -#define HASH_MAP_MAGIC 0x67 - typedef struct { uint16_t (*hash) (void *); array_list *data; uint16_t size; - uint8_t magic; uint8_t key_size; uint8_t value_size; mem_heap_alloc_term_t alloc_term; @@ -37,7 +34,6 @@ extract_header (hash_table ht) { JERRY_ASSERT (ht != null_hash); hash_table_int *hti = (hash_table_int *) ht; - JERRY_ASSERT (hti->magic == HASH_MAP_MAGIC); return hti; } @@ -107,7 +103,6 @@ hash_table_init (uint8_t key_size, uint8_t value_size, uint16_t size, { hash_table_int *res = (hash_table_int *) mem_heap_alloc_block (sizeof (hash_table_int), alloc_term); memset (res, 0, sizeof (hash_table_int)); - res->magic = HASH_MAP_MAGIC; res->key_size = key_size; res->value_size = value_size; res->size = size; diff --git a/jerry-core/parser/collections/linked-list.cpp b/jerry-core/parser/collections/linked-list.cpp index de0dccd12..96caef1c6 100644 --- a/jerry-core/parser/collections/linked-list.cpp +++ b/jerry-core/parser/collections/linked-list.cpp @@ -19,15 +19,10 @@ #include "mem-heap.h" #include "lp-string.h" -#define LINKED_LIST_MAGIC 0x42 - typedef struct linked_list_header { struct linked_list_header *next; - struct linked_list_header *prev; - uint16_t block_size; uint16_t element_size; - uint8_t magic; } linked_list_header; @@ -35,13 +30,17 @@ linked_list_header; do { \ linked_list_header *header = (linked_list_header *) list; \ JERRY_ASSERT (header); \ - JERRY_ASSERT (header->magic == LINKED_LIST_MAGIC); \ } while (0); +static size_t linked_list_block_size (uint16_t element_size) +{ + return mem_heap_recommend_allocation_size (sizeof (linked_list_header) + element_size) - sizeof (linked_list_header); +} + linked_list linked_list_init (uint16_t element_size) { - size_t size = mem_heap_recommend_allocation_size (element_size); + size_t size = sizeof (linked_list_header) + linked_list_block_size (element_size); linked_list list = (linked_list) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM); if (list == null_list) { @@ -50,10 +49,8 @@ linked_list_init (uint16_t element_size) } memset (list, 0, size); linked_list_header* header = (linked_list_header *) list; - header->magic = LINKED_LIST_MAGIC; - header->prev = header->next = null_list; + header->next = null_list; header->element_size = element_size; - header->block_size = (uint8_t) (size - sizeof (linked_list_header)); return list; } @@ -70,17 +67,18 @@ linked_list_free (linked_list list) } void * -linked_list_element (linked_list list, uint16_t element_num) +linked_list_element (linked_list list, size_t element_num) { ASSERT_LIST (list); linked_list_header *header = (linked_list_header *) list; + size_t block_size = linked_list_block_size (header->element_size); linked_list raw = list + sizeof (linked_list_header); - if (header->block_size < header->element_size * (element_num + 1)) + if (block_size < header->element_size * (element_num + 1)) { if (header->next) { return linked_list_element ((linked_list) header->next, - (uint16_t) (element_num - (header->block_size / header->element_size))); + element_num - (block_size / header->element_size)); } else { @@ -92,20 +90,20 @@ linked_list_element (linked_list list, uint16_t element_num) } void -linked_list_set_element (linked_list list, uint16_t element_num, void *element) +linked_list_set_element (linked_list list, size_t element_num, void *element) { ASSERT_LIST (list); linked_list_header *header = (linked_list_header *) list; + size_t block_size = linked_list_block_size (header->element_size); uint8_t *raw = (uint8_t *) (header + 1); - if (header->block_size < header->element_size * (element_num + 1)) + if (block_size < header->element_size * (element_num + 1)) { if (header->next == null_list) { header->next = (linked_list_header *) linked_list_init (header->element_size); - header->next->prev = header; } linked_list_set_element ((linked_list) header->next, - (uint16_t) (element_num - (header->block_size / header->element_size)), + element_num - (block_size / header->element_size), element); return; } diff --git a/jerry-core/parser/collections/linked-list.h b/jerry-core/parser/collections/linked-list.h index 4147307e4..280492d91 100644 --- a/jerry-core/parser/collections/linked-list.h +++ b/jerry-core/parser/collections/linked-list.h @@ -23,7 +23,7 @@ typedef uint8_t* linked_list; linked_list linked_list_init (uint16_t); void linked_list_free (linked_list); -void *linked_list_element (linked_list, uint16_t); -void linked_list_set_element (linked_list, uint16_t, void *); +void *linked_list_element (linked_list, size_t); +void linked_list_set_element (linked_list, size_t, void *); #endif /* LINKED_LIST_H */ diff --git a/jerry-core/parser/collections/literal.h b/jerry-core/parser/collections/literal.h index ea9cbf6e1..f8ace2beb 100644 --- a/jerry-core/parser/collections/literal.h +++ b/jerry-core/parser/collections/literal.h @@ -19,7 +19,7 @@ #include "ecma-globals.h" #include "lp-string.h" -typedef enum +typedef enum __attr_packed___ { LIT_UNKNOWN, LIT_STR, diff --git a/jerry-core/parser/collections/tree.h b/jerry-core/parser/collections/tree.h index bb5c2bad0..4261ddffc 100644 --- a/jerry-core/parser/collections/tree.h +++ b/jerry-core/parser/collections/tree.h @@ -18,13 +18,10 @@ #include "linked-list.h" -#define TREE_MAGIC 0x43 - typedef struct tree_header { struct tree_header *parent; linked_list children; - uint8_t magic; uint8_t children_num; } tree_header; diff --git a/jerry-core/parser/js/lexer.h b/jerry-core/parser/js/lexer.h index cf1deb59f..2497a5551 100644 --- a/jerry-core/parser/js/lexer.h +++ b/jerry-core/parser/js/lexer.h @@ -1,4 +1,4 @@ -/* Copyright 2014 Samsung Electronics Co., Ltd. +/* Copyright 2014-2015 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ #define INVALID_LITERAL UINT32_MAX /* Keywords. */ -typedef enum +typedef enum __attr_packed___ { /* Not a keyword. */ KW_NONE = 0, @@ -81,7 +81,7 @@ keyword; /* Type of tokens. */ -typedef enum +typedef enum __attr_packed___ { TOK_EOF = 0, // End of file TOK_NAME, // Identifier diff --git a/jerry-core/parser/js/literal.h b/jerry-core/parser/js/literal.h index ea9cbf6e1..f8ace2beb 100644 --- a/jerry-core/parser/js/literal.h +++ b/jerry-core/parser/js/literal.h @@ -19,7 +19,7 @@ #include "ecma-globals.h" #include "lp-string.h" -typedef enum +typedef enum __attr_packed___ { LIT_UNKNOWN, LIT_STR, diff --git a/jerry-core/parser/js/opcodes-dumper.h b/jerry-core/parser/js/opcodes-dumper.h index 21fdeeaff..4789e804c 100644 --- a/jerry-core/parser/js/opcodes-dumper.h +++ b/jerry-core/parser/js/opcodes-dumper.h @@ -1,4 +1,4 @@ -/* Copyright 2014 Samsung Electronics Co., Ltd. +/* Copyright 2014-2015 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ #include "ecma-globals.h" #include "lexer.h" -typedef enum +typedef enum __attr_packed___ { OPERAND_LITERAL, OPERAND_TMP @@ -39,7 +39,7 @@ typedef struct } operand; -typedef enum +typedef enum __attr_packed___ { VARG_FUNC_DECL, VARG_FUNC_EXPR, diff --git a/jerry-core/parser/js/scopes-tree.cpp b/jerry-core/parser/js/scopes-tree.cpp index 33f077f11..6b7898880 100644 --- a/jerry-core/parser/js/scopes-tree.cpp +++ b/jerry-core/parser/js/scopes-tree.cpp @@ -30,7 +30,6 @@ static void assert_tree (scopes_tree t) { JERRY_ASSERT (t != NULL); - JERRY_ASSERT (t->t.magic == TREE_MAGIC); } static idx_t @@ -648,7 +647,6 @@ scopes_tree_init (scopes_tree parent) { scopes_tree tree = (scopes_tree) mem_heap_alloc_block (sizeof (scopes_tree_int), MEM_HEAP_ALLOC_SHORT_TERM); memset (tree, 0, sizeof (scopes_tree_int)); - tree->t.magic = TREE_MAGIC; tree->t.parent = (tree_header *) parent; tree->t.children = null_list; tree->t.children_num = 0; diff --git a/jerry-core/parser/js/syntax-errors.h b/jerry-core/parser/js/syntax-errors.h index ac2162ec2..bf82ddd00 100644 --- a/jerry-core/parser/js/syntax-errors.h +++ b/jerry-core/parser/js/syntax-errors.h @@ -79,7 +79,7 @@ } while (0) #endif /* JERRY_NDEBUG */ -typedef enum +typedef enum __attr_packed___ { PROP_DATA, PROP_SET,