From 45ebc49aca5e318be752eac0d800e9571dd24c83 Mon Sep 17 00:00:00 2001 From: Vipul Cariappa Date: Sat, 18 Jan 2025 17:43:56 +0530 Subject: [PATCH] resolve class object's type using `Cppyy::GetActualClass` reference compiler-research/cppyy-backend#120 --- src/Cppyy.h | 2 +- src/ProxyWrappers.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Cppyy.h b/src/Cppyy.h index 6821ec1..4397ad4 100644 --- a/src/Cppyy.h +++ b/src/Cppyy.h @@ -91,7 +91,7 @@ namespace Cppyy { CPPYY_IMPORT TCppScope_t GetGlobalScope(); CPPYY_IMPORT - TCppType_t GetActualClass(TCppType_t klass, TCppObject_t obj); + TCppScope_t GetActualClass(TCppScope_t klass, TCppObject_t obj); CPPYY_IMPORT size_t SizeOf(TCppScope_t klass); CPPYY_IMPORT diff --git a/src/ProxyWrappers.cxx b/src/ProxyWrappers.cxx index 4e2150c..1ba811b 100644 --- a/src/ProxyWrappers.cxx +++ b/src/ProxyWrappers.cxx @@ -885,7 +885,7 @@ PyObject* CPyCppyy::BindCppObject(Cppyy::TCppObject_t address, // TODO: optimize for final classes unsigned new_flags = flags; if (!isRef && (gPinnedTypes.empty() || gPinnedTypes.find(klass) == gPinnedTypes.end())) { - Cppyy::TCppType_t clActual = klass /* XXX: Cppyy::GetActualClass(klass, address) */; + Cppyy::TCppType_t clActual = Cppyy::GetActualClass(klass, address); if (clActual) { if (clActual != klass) {