comparison core/src/luan/impl/EqExpr.java @ 426:23a93c118042

fix LuanTable.get() to use metatables
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 01 May 2015 18:44:20 -0600
parents d55e873e1f0d
children bf5e62a9090c
comparison
equal deleted inserted replaced
425:0a2fb80907f9 426:23a93c118042
40 LuanTable t2 = (LuanTable)o2; 40 LuanTable t2 = (LuanTable)o2;
41 LuanTable mt1 = t1.getMetatable(); 41 LuanTable mt1 = t1.getMetatable();
42 LuanTable mt2 = t2.getMetatable(); 42 LuanTable mt2 = t2.getMetatable();
43 if( mt1==null || mt2==null ) 43 if( mt1==null || mt2==null )
44 return false; 44 return false;
45 Object f = mt1.get("__eq"); 45 Object f = mt1.rawGet("__eq");
46 if( f == null || !f.equals(mt2.get("__eq")) ) 46 if( f == null || !f.equals(mt2.rawGet("__eq")) )
47 return false; 47 return false;
48 LuanBit bit = luan.bit(se); 48 LuanBit bit = luan.bit(se);
49 LuanFunction fn = bit.checkFunction(f); 49 LuanFunction fn = bit.checkFunction(f);
50 return Luan.toBoolean( Luan.first(bit.call(fn,"__eq",new Object[]{o1,o2})) ); 50 return Luan.toBoolean( Luan.first(bit.call(fn,"__eq",new Object[]{o1,o2})) );
51 } 51 }