Browse Source

[java] always setAccessible(true) on native reflection fields. Fixes Issue #785 and gives a nice speedup!

Caue Waneck 13 years ago
parent
commit
cd1e4c520a
1 changed files with 5 additions and 0 deletions
  1. 5 0
      std/java/_std/haxe/lang/Runtime.hx

+ 5 - 0
std/java/_std/haxe/lang/Runtime.hx

@@ -238,6 +238,7 @@ package haxe.lang;
 		}
 		
 		java.lang.reflect.Field f = cl.getField(field);
+		f.setAccessible(true);
 		return f.get(obj);
 	} catch (Throwable t)
 	{
@@ -280,6 +281,9 @@ package haxe.lang;
 		
 		try {
 			java.lang.reflect.Field f = cl.getField(field);
+			f.setAccessible(true);
+			
+			//FIXME we must evaluate if field to be set receives either int or double
 			if (isInt(value))
 			{
 				f.setInt(obj, toInt(value));
@@ -414,6 +418,7 @@ package haxe.lang;
 				}
 			}
 			
+			found.setAccessible(true);
 			return found.invoke(obj, objs);
 		} catch(Throwable t) {
 			throw HaxeException.wrap(t);