diff --git a/extlib/benz/dict.c b/extlib/benz/dict.c index 80aed488..656547d1 100644 --- a/extlib/benz/dict.c +++ b/extlib/benz/dict.c @@ -3,6 +3,7 @@ */ #include "picrin.h" +#include "picrin/object.h" KHASH_DEFINE(dict, pic_sym *, pic_value, kh_ptr_hash_func, kh_ptr_hash_equal) diff --git a/extlib/benz/include/picrin.h b/extlib/benz/include/picrin.h index 177b877b..27fdc140 100644 --- a/extlib/benz/include/picrin.h +++ b/extlib/benz/include/picrin.h @@ -261,7 +261,6 @@ int pic_str_hash(pic_state *, struct pic_string *); #include "picrin/cont.h" #include "picrin/data.h" -#include "picrin/dict.h" #include "picrin/error.h" #include "picrin/macro.h" #include "picrin/pair.h" diff --git a/extlib/benz/include/picrin/dict.h b/extlib/benz/include/picrin/dict.h deleted file mode 100644 index bcb3a427..00000000 --- a/extlib/benz/include/picrin/dict.h +++ /dev/null @@ -1,25 +0,0 @@ -/** - * See Copyright Notice in picrin.h - */ - -#ifndef PICRIN_DICT_H -#define PICRIN_DICT_H - -#if defined(__cplusplus) -extern "C" { -#endif - -KHASH_DECLARE(dict, pic_sym *, pic_value) - -struct pic_dict { - PIC_OBJECT_HEADER - khash_t(dict) hash; -}; - -#define pic_dict_ptr(v) ((struct pic_dict *)pic_obj_ptr(v)) - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/extlib/benz/include/picrin/object.h b/extlib/benz/include/picrin/object.h index 6a5d5b16..2a4c7caf 100644 --- a/extlib/benz/include/picrin/object.h +++ b/extlib/benz/include/picrin/object.h @@ -44,6 +44,18 @@ struct pic_vector { #define pic_vec_ptr(o) ((struct pic_vector *)pic_obj_ptr(o)) +/* dictionary */ + +KHASH_DECLARE(dict, pic_sym *, pic_value) + +struct pic_dict { + PIC_OBJECT_HEADER + khash_t(dict) hash; +}; + +#define pic_dict_ptr(v) ((struct pic_dict *)pic_obj_ptr(v)) + + /* weak */ KHASH_DECLARE(weak, void *, pic_value)