*refactored the tag of memory allocation.
This commit is contained in:
parent
61effb8d4b
commit
5e52e72cf7
@ -1314,7 +1314,7 @@ static void _resize_dynamic_buffer(_dynamic_buffer_t* buf, size_t es, size_t c);
|
||||
#define _WCHAR_BUF_PTR(b) ((b).pointer.wcharp)
|
||||
#endif /* MB_CP_VC && MB_ENABLE_UNICODE */
|
||||
|
||||
#define _MB_CHECK_MEM_TAG_SIZE(y, s) ((mb_mem_tag_t)(s) == (s))
|
||||
#define _MB_CHECK_MEM_TAG_SIZE(y, s) ((y)(mb_mem_tag_t)(s) == (s))
|
||||
#define _MB_WRITE_MEM_TAG_SIZE(t, s) (*((mb_mem_tag_t*)((char*)(t) - _MB_MEM_TAG_SIZE)) = (mb_mem_tag_t)(s))
|
||||
#define _MB_READ_MEM_TAG_SIZE(t) (*((mb_mem_tag_t*)((char*)(t) - _MB_MEM_TAG_SIZE)))
|
||||
|
||||
@ -14352,6 +14352,7 @@ char* mb_memdup(const char* val, unsigned size) {
|
||||
|
||||
if(val != 0) {
|
||||
result = (char*)mb_malloc(size);
|
||||
if(result)
|
||||
memcpy(result, val, size);
|
||||
}
|
||||
|
||||
|
@ -300,6 +300,14 @@ extern "C" {
|
||||
# define mb_unrefvar(__v) ((void)(__v))
|
||||
#endif /* mb_unrefvar */
|
||||
|
||||
#ifndef mb_mem_tag_t
|
||||
typedef unsigned short mb_mem_tag_t;
|
||||
#endif /* mb_mem_tag_t */
|
||||
|
||||
#ifndef mb_bytes_size
|
||||
# define mb_bytes_size (mb_max(mb_max(mb_max(sizeof(void*), sizeof(unsigned long)), sizeof(int_t)), sizeof(real_t)))
|
||||
#endif /* mb_bytes_size */
|
||||
|
||||
#ifndef mb_make_nil
|
||||
# define mb_make_nil(__v) do { memset(&(__v).value.bytes, 0, sizeof(mb_val_bytes_t)); (__v).type = MB_DT_NIL; } while(0)
|
||||
#endif /* mb_make_nil */
|
||||
@ -340,10 +348,6 @@ extern "C" {
|
||||
# define mb_int_val(__v, __d) do { if((__v).type == MB_DT_INT) (__d) = (__v).value.integer; else if((__v).type == MB_DT_REAL) (__d) = (int_t)((__v).value.float_point); else (__d) = ~((int_t)0); } while(0)
|
||||
#endif /* mb_int_val */
|
||||
|
||||
#ifndef mb_bytes_size
|
||||
# define mb_bytes_size (mb_max(mb_max(mb_max(sizeof(void*), sizeof(unsigned long)), sizeof(int_t)), sizeof(real_t)))
|
||||
#endif /* mb_bytes_size */
|
||||
|
||||
#ifndef MB_CODES
|
||||
# define MB_CODES
|
||||
# define MB_FUNC_OK 0
|
||||
@ -569,8 +573,6 @@ typedef struct mb_value_t {
|
||||
mb_value_u value;
|
||||
} mb_value_t;
|
||||
|
||||
typedef unsigned short mb_mem_tag_t;
|
||||
|
||||
typedef int (* mb_func_t)(struct mb_interpreter_t*, void**);
|
||||
typedef int (* mb_has_routine_arg_func_t)(struct mb_interpreter_t*, void**, mb_value_t*, unsigned, unsigned*, void*);
|
||||
typedef int (* mb_pop_routine_arg_func_t)(struct mb_interpreter_t*, void**, mb_value_t*, unsigned, unsigned*, void*, mb_value_t*);
|
||||
|
Loading…
x
Reference in New Issue
Block a user