Do instanceof Streamable sensibly instead of via the cracksmoking way I was
doing it. Don't generate ActionScript methods for the instrumented field reader and writer methods. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4798 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -394,6 +394,11 @@ public class ActionScriptSource
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if this is an auto-generated reader or writer method, skip it
|
||||||
|
if (name.startsWith("readField_") || name.startsWith("writeField_")) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// see if we already have a member for this method name
|
// see if we already have a member for this method name
|
||||||
Member mem = getMember(list, name);
|
Member mem = getMember(list, name);
|
||||||
String decl = createActionScriptDeclaration(name, method);
|
String decl = createActionScriptDeclaration(name, method);
|
||||||
|
|||||||
@@ -181,15 +181,7 @@ public class GenActionScriptTask extends Task
|
|||||||
assrc.absorbJava(source);
|
assrc.absorbJava(source);
|
||||||
|
|
||||||
// see if our parent also implements Streamable
|
// see if our parent also implements Streamable
|
||||||
boolean needSuper = false;
|
boolean needSuper = Streamable.class.isAssignableFrom(sclass.getSuperclass());
|
||||||
Class supster = sclass.getSuperclass();
|
|
||||||
do {
|
|
||||||
if (isStreamable(supster)) {
|
|
||||||
needSuper = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
supster = supster.getSuperclass();
|
|
||||||
} while (supster != null);
|
|
||||||
|
|
||||||
// add readObject() and writeObject() definitions
|
// add readObject() and writeObject() definitions
|
||||||
ActionScriptSource.Member member;
|
ActionScriptSource.Member member;
|
||||||
@@ -252,16 +244,6 @@ public class GenActionScriptTask extends Task
|
|||||||
assrc.write(new PrintWriter(out));
|
assrc.write(new PrintWriter(out));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isStreamable (Class clazz)
|
|
||||||
{
|
|
||||||
for (Class iface : clazz.getInterfaces()) {
|
|
||||||
if (Streamable.class.equals(iface)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected boolean isStreamable (Field field)
|
protected boolean isStreamable (Field field)
|
||||||
{
|
{
|
||||||
int mods = field.getModifiers();
|
int mods = field.getModifiers();
|
||||||
|
|||||||
Reference in New Issue
Block a user