From 5f64dc38e094dee09533463c305e28756162acbf Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 15 Feb 2022 17:35:09 +0100 Subject: [PATCH] Berry instance variables are never methods --- lib/libesp32/berry/src/be_vm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/libesp32/berry/src/be_vm.c b/lib/libesp32/berry/src/be_vm.c index 622930526..66bec1f31 100644 --- a/lib/libesp32/berry/src/be_vm.c +++ b/lib/libesp32/berry/src/be_vm.c @@ -904,7 +904,11 @@ newframe: /* a new call frame */ if (var_isinstance(a) && var_isstr(b)) { binstance *obj = var_toobj(a); bstring *attr = var_tostr(b); - if (!be_instance_setmember(vm, obj, attr, c)) { + bvalue result = *c; + if (var_isfunction(&result)) { + var_markstatic(&result); + } + if (!be_instance_setmember(vm, obj, attr, &result)) { reg = vm->reg; vm_error(vm, "attribute_error", "class '%s' cannot assign to attribute '%s'",