ordersupplier fix
This commit is contained in:
@@ -13,5 +13,5 @@ interface IOrderSupplier {
|
||||
public var orders(default, null):Map<String, Order<Dynamic>>;
|
||||
|
||||
public function request<T>(url:String, clazz:Class<T>):Deferred<T>;
|
||||
public function release(url:String, ?force:Bool = false):Void;
|
||||
public function release(url:String, force:Bool = false):Void;
|
||||
}
|
||||
@@ -16,7 +16,10 @@ class OrderSupplier implements IOrderSupplier {
|
||||
|
||||
public function request<T>(url:String, clazz:Class<T>):Deferred<T> {
|
||||
if (orders.exists(url)) {
|
||||
return cast orders.get(url).deferred;
|
||||
var order:Order<T> = orders.get(url);
|
||||
order.clients++;
|
||||
//L.d(TAG, "Request(" + order.clients + "): " + url);
|
||||
return order.deferred;
|
||||
} else {
|
||||
var deferred = new Deferred<T>();
|
||||
var order:Order<T> = {
|
||||
@@ -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<Dynamic> = 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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user