From: <fra...@us...> - 2009-08-27 22:50:04
|
Revision: 1862 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1862&view=rev Author: frankrimlinger Date: 2009-08-27 22:49:44 +0000 (Thu, 27 Aug 2009) Log Message: ----------- These are the notes for 1861, somehow they didn't take. Fixed nasty bug in MakeClass action, which was returning a ClassNameSym instead of the correct ClassObjectSym. The distinction is critical. A ClassNameSym is the name of a class, and as such is the value of an expression (valueH (loc obj ^className) heap) On the other hand, a ClassNameObject names a Class object, as such is the return value of a method-returning-Class<?>. Since the native implementations of forName() and getComponentType() ultimately boil down to the MakeClass action, these implementations were broken. With this fix, specification of public String intComponentTest(){ Class<?> clazz=int[].class.getComponentType(); boolean test=(clazz.equals(Integer.TYPE)); if(test){ return clazz.getName(); } return "failed"; } is Final case: Returns java.lang.String: int Actually, to get the specification to look like this, reimplemented an old device to omit heap items that are represented as the return value in "special" cases, like that of a String. FWIW, it is now conceptually easier to implement other special cases as then need arises. Also, got rid of the "." at the end of the return value, which is more confusion then help. Also, suppressing "_MangoFormal" in all translations, as this is in an internal thing. Note that _MangoFormal is still exposed to the file system, and to method signatures. There is no easy way around this. Fixed specification window so that it *displays* the name of the current session with _MangoFormal suppressed. This is more readable. A session name now indicates whether or not it is the final case. The cases of session can be replayed in any order, except that the final case has to be last. No more guessing which one that is. Need to finish rebuilding all sessions for changes to take root. With all this clean up in place, it remains to rehab the Object implementation, do the heapPtr upgrade, declare MangoBaseline. Then finally the real project can start. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/worker/Worker.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |