blueloveTH il y a 3 ans
Parent
commit
f83eecde71
2 fichiers modifiés avec 3 ajouts et 3 suppressions
  1. 1 1
      src/cffi.h
  2. 2 2
      src/obj.h

+ 1 - 1
src/cffi.h

@@ -443,7 +443,7 @@ T py_pointer_cast(VM* vm, const PyVar& var){
 }
 
 template<typename T>
-std::enable_if_t<std::is_pointer_v<T>, PyVar>
+std::enable_if_t<std::is_pointer_v<std::decay_t<T>>, PyVar>
 py_var(VM* vm, T p){
     const TypeInfo* type = _type_db.get<typename pointer<T>::baseT>();
     return VAR_T(Pointer, type, pointer<T>::level, (char*)p);

+ 2 - 2
src/obj.h

@@ -186,8 +186,8 @@ struct Discarded {};
 template<typename __T>
 __T py_cast(VM* vm, const PyVar& obj) {
     using T = std::decay_t<__T>;
-    if constexpr(std::is_pointer_v<__T>){
-        return py_pointer_cast<__T>(vm, obj);
+    if constexpr(std::is_pointer_v<T>){
+        return py_pointer_cast<T>(vm, obj);
     }else if constexpr(is_py_class<T>::value){
         _check_py_class<T>(vm, obj);
         return OBJ_GET(T, obj);