diff --git a/src/main/haxework/net/order/IOrderSupplier.hx b/src/main/haxework/net/order/IOrderSupplier.hx index e18bf22..8916c20 100755 --- a/src/main/haxework/net/order/IOrderSupplier.hx +++ b/src/main/haxework/net/order/IOrderSupplier.hx @@ -13,5 +13,5 @@ interface IOrderSupplier { public var orders(default, null):Map>; public function request(url:String, clazz:Class):Deferred; - public function release(url:String, ?force:Bool = false):Void; + public function release(url:String, force:Bool = false):Void; } \ No newline at end of file diff --git a/src/main/haxework/net/order/OrderSupplier.hx b/src/main/haxework/net/order/OrderSupplier.hx index d94965f..caa2db7 100755 --- a/src/main/haxework/net/order/OrderSupplier.hx +++ b/src/main/haxework/net/order/OrderSupplier.hx @@ -16,7 +16,10 @@ class OrderSupplier implements IOrderSupplier { public function request(url:String, clazz:Class):Deferred { if (orders.exists(url)) { - return cast orders.get(url).deferred; + var order:Order = orders.get(url); + order.clients++; + //L.d(TAG, "Request(" + order.clients + "): " + url); + return order.deferred; } else { var deferred = new Deferred(); var order:Order = { @@ -44,17 +47,17 @@ class OrderSupplier implements IOrderSupplier { } } - public function release(url:String, ?force:Bool = false):Void { + public function release(url:String, force:Bool = false):Void { if (orders.exists(url)) { var order:Order = orders.get(url); if (--order.clients <= 0 || force) { var data:Dynamic = order.data; - if (Std.is(data, BitmapData)) { + if (data != null && Std.is(data, BitmapData)) { cast(data, BitmapData).dispose(); } orders.remove(url); } - //L.d(TAG, "Release(" + order.clients + "): " + url); + L.d(TAG, "Release(" + order.clients + "): " + url); //log(); } }