From e3f58c838022fcdbb39b9a28274b72bc0f69d1ea Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 5 Apr 2014 04:14:22 +0300 Subject: [PATCH] map: Add mp_map_dump() (#ifdef'ed) to be handy when debugging maps. --- py/map.c | 14 ++++++++++++++ py/obj.h | 1 + 2 files changed, 15 insertions(+) diff --git a/py/map.c b/py/map.c index d424c277cc..301ea51ae4 100644 --- a/py/map.c +++ b/py/map.c @@ -243,3 +243,17 @@ void mp_set_clear(mp_set_t *set) { set->used = 0; set->table = NULL; } + +#if DEBUG_PRINT +void mp_map_dump(mp_map_t *map) { + for (int i = 0; i < map->alloc; i++) { + if (map->table[i].key != NULL) { + mp_obj_print(map->table[i].key, PRINT_REPR); + } else { + printf("(nil)"); + } + printf(": %p\n", map->table[i].value); + } + printf("---\n"); +} +#endif diff --git a/py/obj.h b/py/obj.h index 82b7bdadd8..b44b9c0a51 100644 --- a/py/obj.h +++ b/py/obj.h @@ -117,6 +117,7 @@ void mp_map_deinit(mp_map_t *map); void mp_map_free(mp_map_t *map); mp_map_elem_t* mp_map_lookup(mp_map_t *map, mp_obj_t index, mp_map_lookup_kind_t lookup_kind); void mp_map_clear(mp_map_t *map); +void mp_map_dump(mp_map_t *map); // Underlying set implementation (not set object)