瀏覽代碼

Fix map_print for empty map

pull/5/head
mtardy 4 年之前
父節點
當前提交
17a457e18f
共有 1 個檔案被更改,包括 9 行新增20 行删除
  1. +9
    -20
      object.c

+ 9
- 20
object.c 查看文件

@ -413,10 +413,14 @@ oop map_values(oop map)
void map_print(oop map, int ident) void map_print(oop map, int ident)
{ {
assert(is(Map, map)); assert(is(Map, map));
if (ident > 1) {
printf("\n");
if (ident == 0) {
printf("{");
map_print(map, ident + 1);
printf("}");
return;
} }
for (size_t i = 0; i < map_size(map); i++) { for (size_t i = 0; i < map_size(map); i++) {
printf("\n");
for (size_t i = 0; i < ident; i++) { for (size_t i = 0; i < ident; i++) {
printf("|"); printf("|");
printf(" "); printf(" ");
@ -430,7 +434,8 @@ void map_print(oop map, int ident)
} else { } else {
print(rhs); print(rhs);
} }
if (i < map_size(map) - 1) printf(",\n");
if (i < map_size(map) - 1) printf(",");
if (ident == 1 && i == map_size(map) - 1) printf("\n");
} }
return; return;
} }
@ -455,23 +460,7 @@ void print(oop ast)
printf("Function@%p", get(ast, Function, primitive)); printf("Function@%p", get(ast, Function, primitive));
return; return;
case Map: case Map:
/*
printf("{");
for (size_t i = 0; i < get(ast, Map, size); i++) {
printf(" ");
// I could write this instead but I want a special print for my string key name
print(get(ast, Map, elements)[i].key);
//printf("%s", get(get(ast, Map, elements)[i].key, String, value));
printf(": ");
print(get(ast, Map, elements)[i].value);
if (i < get(ast, Map, size) - 1) printf(",");
else printf(" ");
}
printf("}");
*/
printf("{\n");
map_print(ast, 1);
printf("\n}");
map_print(ast, 0);
return; return;
} }
assert(0); assert(0);

Loading…
取消
儲存