Bladeren bron

Handle isObject on cpp, use native dynamic_cast for Std.is

Hugh Sanderson 16 jaren geleden
bovenliggende
commit
b7491d8568
2 gewijzigde bestanden met toevoegingen van 5 en 1 verwijderingen
  1. 4 0
      std/Reflect.hx
  2. 1 1
      std/Std.hx

+ 4 - 0
std/Reflect.hx

@@ -300,6 +300,10 @@ class Reflect {
 				return __php__("$v instanceof _hx_anonymous") || Type.getClass(v) != null;
 			if(__php__("is_string($v) && !_hx_is_lambda($v)")) return true;
 			return false;
+		#elseif cpp
+			if (v==null) return false;
+			var t:Int = v.__GetType();
+			return t ==  __global__.vtObject || t==__global__.vtClass;
 		#else
 			return false;
 		#end

+ 1 - 1
std/Std.hx

@@ -42,7 +42,7 @@ class Std {
 		#elseif php
 		untyped __call__("_hx_instanceof", v,t);
 		#elseif cpp
-		t!=null && (t==Dynamic) || (v!=null && v.__IsClass(t));
+		__global__.__instanceof(v,t);
 		#else
 		false;
 		#end