[debugger][bindings] don't enter to recursion on type info calculation (KT-41291)

KT-41291
This commit is contained in:
Vasily Levchenko
2020-09-01 08:23:03 +02:00
committed by GitHub
parent 56c8a2e190
commit b604b58223
+1 -1
View File
@@ -79,7 +79,7 @@ def is_string_or_array(value):
def type_info(value):
"""This method checks self-referencing of pointer of first member of TypeInfo including case when object has an
meta-object pointed by TypeInfo. Two lower bits are reserved for memory management needs see runtime/src/main/cpp/Memory.h."""
if str(value.type) != "struct ObjHeader *":
if value.GetTypeName() != "struct ObjHeader *":
return False
expr = "*(void **)((uintptr_t)(*(void**){0:#x}) & ~0x3) == **(void***)((uintptr_t)(*(void**){0:#x}) & ~0x3) ? *(void **)((uintptr_t)(*(void**){0:#x}) & ~0x3) : (void *)0".format(value.unsigned)
result = evaluate(expr)