From 2832d33aedf6487dd1daf749916045f033b65457 Mon Sep 17 00:00:00 2001 From: RblSb Date: Wed, 1 Mar 2023 18:13:46 +0300 Subject: [PATCH] Use array_fill for php --- std/php/_std/haxe/ds/Vector.hx | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/std/php/_std/haxe/ds/Vector.hx b/std/php/_std/haxe/ds/Vector.hx index d5c5ab3a12f..f6fbe0e45e7 100644 --- a/std/php/_std/haxe/ds/Vector.hx +++ b/std/php/_std/haxe/ds/Vector.hx @@ -28,9 +28,9 @@ private class PhpVectorData { public var length:Int; public var data:NativeIndexedArray; - public inline function new(length:Int) { + public inline function new(length:Int, data:NativeIndexedArray) { this.length = length; - data = new NativeIndexedArray(); + this.data = data; } } @@ -41,13 +41,11 @@ abstract Vector(VectorData) { public var length(get, never):Int; public inline function new(length:Int) { - this = new VectorData(length); + this = new VectorData(length, new NativeIndexedArray()); } public static inline function createFilled(length:Int, defaultValue:T):Vector { - final vector = new Vector(length); - vector.fill(defaultValue); - return vector; + return cast new VectorData(length, Global.array_fill(0, length, defaultValue)); } @:op([]) public inline function get(index:Int):T { @@ -63,7 +61,7 @@ abstract Vector(VectorData) { } public inline function fill(value:T):Void - for (i in 0...length) this.data[i] = value; + this.data = Global.array_fill(0, length, value); public static function blit(src:Vector, srcPos:Int, dest:Vector, destPos:Int, len:Int):Void { if (src == dest) { @@ -109,8 +107,7 @@ abstract Vector(VectorData) { } static public inline function fromArrayCopy(array:Array):Vector { - var vectorData = new VectorData(array.length); - vectorData.data = @:privateAccess array.arr; + var vectorData = new VectorData(array.length, @:privateAccess array.arr); return cast vectorData; }