compare methods fix on neko target

This commit is contained in:
Dima Granetchi
2014-11-29 21:33:22 +02:00
parent b1bcd3b034
commit 53cf3c724a
+19 -2
View File
@@ -216,16 +216,33 @@ class Signal<T> {
listeners = [];
lock = 0;
}
inline function indexOf(listener:T):Int {
#if (neko || bindx_compareMethods)
var res = -1;
var i = 0;
for (l in listeners) {
if (Reflect.compareMethods(listener, l)) {
res = i;
break;
}
i++;
}
return res;
#else
return listeners.indexOf(listener);
#end
}
public function add(listener:T):Void {
var pos = listeners.indexOf(listener);
var pos = indexOf(listener);
checkLock();
if (pos > -1) listeners.splice(pos, 1);
listeners.push(listener);
}
public function remove(listener:T):Void {
var pos = listeners.indexOf(listener);
var pos = indexOf(listener);
if (pos > -1) {
checkLock();
listeners.splice(pos, 1);