ordersupplier fix

This commit is contained in:
2015-09-11 11:11:33 +03:00
parent d4acd11c86
commit a39b45d090
2 changed files with 8 additions and 5 deletions

View File

@@ -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;
}

View File

@@ -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();
}
}