From 53cf3c724ae7b7acb3536dbb7ad30431b2d3edc7 Mon Sep 17 00:00:00 2001 From: Dima Granetchi Date: Sat, 29 Nov 2014 21:33:22 +0200 Subject: [PATCH] compare methods fix on neko target --- src/bindx/BindSignal.hx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/bindx/BindSignal.hx b/src/bindx/BindSignal.hx index ea78397..fedeaf2 100644 --- a/src/bindx/BindSignal.hx +++ b/src/bindx/BindSignal.hx @@ -216,16 +216,33 @@ class Signal { 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);