Browse Source

added missing blit()

Nicolas Cannasse 9 years ago
parent
commit
b87df0a726
3 changed files with 11 additions and 0 deletions
  1. 1 0
      std/hl/types/ArrayBase.hx
  2. 4 0
      std/hl/types/ArrayDyn.hx
  3. 6 0
      std/hl/types/ArrayObj.hx

+ 1 - 0
std/hl/types/ArrayBase.hx

@@ -44,6 +44,7 @@ class ArrayBase extends ArrayAccess {
 
 	public var length(default,null) : Int;
 
+
 	public function pushDyn( v : Dynamic ) : Int {
 		throw "Not implemented";
 		return 0;

+ 4 - 0
std/hl/types/ArrayDyn.hx

@@ -61,6 +61,10 @@ class ArrayDyn extends ArrayAccess {
 		array.setDyn(pos, value);
 	}
 
+	override function blit( pos : Int, src : ArrayAccess, srcpos : Int, len : Int ) : Void {
+		array.blit(pos, src, srcpos, len);
+	}
+
 	public function concat( a : ArrayDyn ) : ArrayDyn {
 		var a1 = array;
 		var a2 = a.array;

+ 6 - 0
std/hl/types/ArrayObj.hx

@@ -187,6 +187,12 @@ class ArrayObj<T> extends ArrayBase {
 		return -1;
 	}
 
+	override function blit( pos : Int, src : ArrayBase.ArrayAccess, srcpos : Int, len : Int ) : Void {
+		var src = (cast src : ArrayObj<T>);
+		if( pos < 0 || srcpos < 0 || len < 0 || pos + len > length || srcpos + len > src.length ) throw haxe.io.Error.OutsideBounds;
+		array.blit(pos, src.array, srcpos, len);
+	}
+
 	public function lastIndexOf( x : T, ?fromIndex:Int ) : Int {
 		var len = length;
 		var i:Int = fromIndex != null ? fromIndex : len - 1;