From 0a5bccc8d927a38cc548ec423a55aed9cf1b663a Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Thu, 21 Oct 2021 21:41:20 +0200 Subject: [PATCH] Berry json dump for subclasses --- lib/libesp32/Berry/src/be_jsonlib.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/libesp32/Berry/src/be_jsonlib.c b/lib/libesp32/Berry/src/be_jsonlib.c index 3c7e6da5a..2ee2a4daa 100644 --- a/lib/libesp32/Berry/src/be_jsonlib.c +++ b/lib/libesp32/Berry/src/be_jsonlib.c @@ -45,8 +45,19 @@ static const char* match_char(const char *json, int ch) static int is_object(bvm *vm, const char *class, int idx) { if (be_isinstance(vm, idx)) { + be_pushvalue(vm, idx); + while (1) { + be_getsuper(vm, -1); + if (be_isnil(vm, -1)) { + be_pop(vm, 1); + break; + } + be_remove(vm, -2); + } const char *name = be_classname(vm, idx); - return !strcmp(name, class); + bbool ret = !strcmp(name, class); + be_pop(vm, 1); + return ret; } return 0; }