Переглянути джерело

[php] Optimized Map.copy(), Array.copy()

Alexander Kuzmenko 7 роки тому
батько
коміт
6fd0536152

+ 1 - 0
extra/CHANGES.txt

@@ -3,6 +3,7 @@ XXXX-XX-XX:
 	General improvements and optimizations:
 
 	php : Optimized haxe.ds.Vector (VectorData is not Array anymore)
+	php : Optimized `Map.copy()` and `Array.copy()`
 
 	Bugfixes:
 

+ 2 - 2
std/php/_std/Array.hx

@@ -38,8 +38,8 @@ class Array<T> implements ArrayAccess<Int,T> {
 		return wrap(Global.array_merge(arr, a.arr));
 	}
 
-	public function copy():Array<T> {
-		return wrap(arr);
+	public inline function copy():Array<T> {
+		return Syntax.clone(this);
 	}
 
 	public inline function filter(f:T->Bool):Array<T> {

+ 2 - 4
std/php/_std/haxe/ds/IntMap.hx

@@ -84,10 +84,8 @@ import php.NativeIndexedArray;
 		return Global.array_values(data).iterator();
 	}
 
-	public function copy() : IntMap<T> {
-		var copied = new IntMap();
-		copied.data = data;
-		return copied;
+	public inline function copy() : IntMap<T> {
+		return Syntax.clone(this);
 	}
 
 	/**

+ 3 - 6
std/php/_std/haxe/ds/ObjectMap.hx

@@ -66,12 +66,9 @@ class ObjectMap <K:{ }, V> implements haxe.Constraints.IMap<K,V> {
 	public inline function iterator() : Iterator<V> {
 		return _values.iterator();
 	}
-	
-	public function copy() : ObjectMap<K,V> {
-		var copied = new ObjectMap();
-		copied._values = _values;
-		copied._keys = _keys;
-		return copied;
+
+	public inline function copy() : ObjectMap<K,V> {
+		return Syntax.clone(this);
 	}
 
 	public function toString() : String {

+ 2 - 4
std/php/_std/haxe/ds/StringMap.hx

@@ -63,10 +63,8 @@ import haxe.Constraints;
 		return data.iterator();
 	}
 
-	public function copy() : StringMap<T> {
-		var copied = new StringMap();
-		copied.data = data;
-		return copied;
+	public inline function copy() : StringMap<T> {
+		return Syntax.clone(this);
 	}
 
 	public function toString() : String {