Przeglądaj źródła

[cpp] Move some constants into cpp.ObjectType

hughsando 9 lat temu
rodzic
commit
75be9d386b
2 zmienionych plików z 29 dodań i 7 usunięć
  1. 19 0
      std/cpp/ObjectType.hx
  2. 10 7
      std/cpp/_std/Reflect.hx

+ 19 - 0
std/cpp/ObjectType.hx

@@ -0,0 +1,19 @@
+package cpp;
+
+extern class ObjectType
+{
+   public inline static var vtUnknown = -1;
+   public inline static var vtInt = 0xff;
+   public inline static var vtNull = 0;
+   public inline static var vtFloat = 1;
+   public inline static var vtBool = 2;
+   public inline static var vtString = 3;
+   public inline static var vtObject = 4;
+   public inline static var vtArray = 5;
+   public inline static var vtFunction = 6;
+   public inline static var vtEnum = 7;
+   public inline static var vtClass = 8;
+   public inline static var vtInt64 = 9;
+   public inline static var vtAbstractBase = 0x100;
+}
+

+ 10 - 7
std/cpp/_std/Reflect.hx

@@ -19,6 +19,9 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  * DEALINGS IN THE SOFTWARE.
  */
  */
+
+import cpp.ObjectType;
+
 @:coreApi
 @:coreApi
 @:analyzer(ignore)
 @:analyzer(ignore)
 class Reflect {
 class Reflect {
@@ -46,7 +49,7 @@ class Reflect {
 	}
 	}
 
 
 	public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
 	public static function callMethod( o : Dynamic, func : haxe.Constraints.Function, args : Array<Dynamic> ) : Dynamic untyped {
-			if (func!=null && func.__GetType()==__global__.vtString)
+			if (func!=null && func.__GetType()==ObjectType.vtString)
 				func = o.__Field(func,untyped __cpp__("hx::paccDynamic"));
 				func = o.__Field(func,untyped __cpp__("hx::paccDynamic"));
 			untyped func.__SetThis(o);
 			untyped func.__SetThis(o);
          return untyped func.__Run(args);
          return untyped func.__Run(args);
@@ -60,7 +63,7 @@ class Reflect {
 	}
 	}
 
 
 	public static function isFunction( f : Dynamic ) : Bool untyped {
 	public static function isFunction( f : Dynamic ) : Bool untyped {
-		return f!=null && f.__GetType() ==  __global__.vtFunction;
+		return f!=null && f.__GetType() ==  ObjectType.vtFunction;
 	}
 	}
 
 
 	public static function compare<T>( a : T, b : T ) : Int {
 	public static function compare<T>( a : T, b : T ) : Int {
@@ -78,12 +81,12 @@ class Reflect {
 	public static function isObject( v : Dynamic ) : Bool untyped {
 	public static function isObject( v : Dynamic ) : Bool untyped {
 		if (v==null) return false;
 		if (v==null) return false;
 		var t:Int = v.__GetType();
 		var t:Int = v.__GetType();
-		return t ==  __global__.vtObject || t==__global__.vtClass || t==__global__.vtString ||
-				t==__global__.vtArray;
+		return t ==  ObjectType.vtObject || t==ObjectType.vtClass || t==ObjectType.vtString ||
+				t==ObjectType.vtArray;
 	}
 	}
 
 
 	public static function isEnumValue( v : Dynamic ) : Bool untyped {
 	public static function isEnumValue( v : Dynamic ) : Bool untyped {
-		return v!=null && v.__GetType() == __global__.vtEnum;
+		return v!=null && v.__GetType() == ObjectType.vtEnum;
 	}
 	}
 
 
 	public static function deleteField( o : Dynamic, field : String ) : Bool untyped {
 	public static function deleteField( o : Dynamic, field : String ) : Bool untyped {
@@ -93,8 +96,8 @@ class Reflect {
 
 
 	public static function copy<T>( o : T ) : T {
 	public static function copy<T>( o : T ) : T {
 		if (o==null) return null;
 		if (o==null) return null;
-		if(untyped o.__GetType()==__global__.vtString ) return o;
-		if(untyped o.__GetType()==__global__.vtArray )
+		if(untyped o.__GetType()==ObjectType.vtString ) return o;
+		if(untyped o.__GetType()==ObjectType.vtArray )
 			return untyped o.__Field("copy", untyped __cpp__("hx::paccDynamic"))();
 			return untyped o.__Field("copy", untyped __cpp__("hx::paccDynamic"))();
 		var o2 : Dynamic = {};
 		var o2 : Dynamic = {};
 		for( f in Reflect.fields(o) )
 		for( f in Reflect.fields(o) )