aboutsummaryrefslogtreecommitdiff
path: root/py/obj.h
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2020-10-09 17:10:29 +1100
committerDamien George <damien@micropython.org>2020-10-10 00:16:26 +1100
commit880875bea1d825b8fa0d1c4a779ff767377f7655 (patch)
tree1845029fd301195bae073c78b3a8535560b3d286 /py/obj.h
parentfa12bfc227be47a10314576f02ee9d9cb2c1d67c (diff)
py/objdict: Add mp_const_empty_dict_obj, use it for mp_const_empty_map.
Diffstat (limited to 'py/obj.h')
-rw-r--r--py/obj.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/py/obj.h b/py/obj.h
index 31542a7f9..6a040b777 100644
--- a/py/obj.h
+++ b/py/obj.h
@@ -422,8 +422,6 @@ typedef enum _mp_map_lookup_kind_t {
MP_MAP_LOOKUP_ADD_IF_NOT_FOUND_OR_REMOVE_IF_FOUND = 3, // only valid for mp_set_lookup
} mp_map_lookup_kind_t;
-extern const mp_map_t mp_const_empty_map;
-
static inline bool mp_map_slot_is_filled(const mp_map_t *map, size_t pos) {
assert(pos < map->alloc);
return (map)->table[pos].key != MP_OBJ_NULL && (map)->table[pos].key != MP_OBJ_SENTINEL;
@@ -685,17 +683,22 @@ extern const struct _mp_obj_bool_t mp_const_false_obj;
extern const struct _mp_obj_bool_t mp_const_true_obj;
#endif
-// Constant objects, globally accessible: b'', (), Ellipsis, NotImplemented, GeneratorExit()
+// Constant objects, globally accessible: b'', (), {}, Ellipsis, NotImplemented, GeneratorExit()
// The below macros are for convenience only.
#define mp_const_empty_bytes (MP_OBJ_FROM_PTR(&mp_const_empty_bytes_obj))
#define mp_const_empty_tuple (MP_OBJ_FROM_PTR(&mp_const_empty_tuple_obj))
#define mp_const_notimplemented (MP_OBJ_FROM_PTR(&mp_const_notimplemented_obj))
extern const struct _mp_obj_str_t mp_const_empty_bytes_obj;
extern const struct _mp_obj_tuple_t mp_const_empty_tuple_obj;
+extern const struct _mp_obj_dict_t mp_const_empty_dict_obj;
extern const struct _mp_obj_singleton_t mp_const_ellipsis_obj;
extern const struct _mp_obj_singleton_t mp_const_notimplemented_obj;
extern const struct _mp_obj_exception_t mp_const_GeneratorExit_obj;
+// Fixed empty map. Useful when calling keyword-receiving functions
+// without any keywords from C, etc.
+#define mp_const_empty_map (mp_const_empty_dict_obj.map)
+
// General API for objects
// These macros are derived from more primitive ones and are used to