+added an mb_make_usertype_bytes macro.

This commit is contained in:
Wang Renxin 2017-05-10 18:45:18 +08:00
parent e414dabf4d
commit f83627bd20
2 changed files with 9 additions and 5 deletions

View File

@ -1,3 +1,6 @@
May. 10 2017
Added an mb_make_usertype_bytes macro
May. 8 2017 May. 8 2017
Added fork functions Added fork functions
Added a global alive object checker Added a global alive object checker

View File

@ -256,6 +256,9 @@ extern "C" {
# define MB_NULL_STRING "(EMPTY)" # define MB_NULL_STRING "(EMPTY)"
#endif /* MB_NULL_STRING */ #endif /* MB_NULL_STRING */
#ifndef mb_min
# define mb_min(a, b) (((a) < (b)) ? (a) : (b))
#endif /* mb_min */
#ifndef mb_max #ifndef mb_max
# define mb_max(a, b) (((a) > (b)) ? (a) : (b)) # define mb_max(a, b) (((a) > (b)) ? (a) : (b))
#endif /* mb_max */ #endif /* mb_max */
@ -310,11 +313,9 @@ extern "C" {
#ifndef mb_make_usertype #ifndef mb_make_usertype
# define mb_make_usertype(__v, __d) do { (__v).value.usertype = (__d); (__v).type = MB_DT_USERTYPE; } while(0) # define mb_make_usertype(__v, __d) do { (__v).value.usertype = (__d); (__v).type = MB_DT_USERTYPE; } while(0)
#endif /* mb_make_usertype */ #endif /* mb_make_usertype */
#ifdef MB_ENABLE_USERTYPE_REF #ifndef mb_make_usertype_bytes
# ifndef mb_make_usertype_ref # define mb_make_usertype_bytes(__v, __d) do { mb_static_assert(sizeof(mb_val_bytes_t) >= sizeof(*__d)); memcpy(&(__v).value.bytes, (__d), mb_min(sizeof(mb_val_bytes_t), sizeof(*__d))); (__v).type = MB_DT_USERTYPE; } while(0)
# define mb_make_usertype_ref(__v, __d) do { (__v).value.usertype_ref = (__d); (__v).type = MB_DT_USERTYPE_REF; } while(0) #endif /* mb_make_usertype_bytes */
# endif /* mb_make_usertype_ref */
#endif /* MB_ENABLE_USERTYPE_REF */
#ifndef mb_make_array #ifndef mb_make_array
# define mb_make_array(__v, __d) do { (__v).value.array = (__d); (__v).type = MB_DT_ARRAY; } while(0) # define mb_make_array(__v, __d) do { (__v).value.array = (__d); (__v).type = MB_DT_ARRAY; } while(0)
#endif /* mb_make_array */ #endif /* mb_make_array */