1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977 |
- 2019-08-29 Per Bothner <per@bothner.com>
- * ClassType.java (isAccessible): Make static.
- Interpret caller==null as being "artibitrary caller".
- 2018-09-07 Per Bothner <per@bothner.com>
- * ClassType.java (JAVA_10_VERSION): New magic number.
- 2018-01-03 Per Bothner <per@bothner.com>
- * Type.java (lowestCommonSharedType): New method. Factor out from
- lowestCommonSuperType so new method can be used by Language.unionType.
- 2017-09-27 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitPushPrimArray): Overload.
- 2017-08-26 Per Bothner <per@bothner.com>
- * Scope.java (vars): Make private.
- 2017-05-08 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitIfRaw): New method.
- 2017-04-19 Per Bothner <per@bothner.com>
- * ClassType.java (classfileFormatVersion): Make somewhat newer.
- 2017-01-01 Per Bothner <per@bothner.com>
- * ClassType.java (isCompatibleWithValue): If this is an interface that
- extends valueType assume compatible.
- 2016-12-03 Per Bothner <per@bothner.com>
- * Type.java (isCompatibleWithValue): Slight change to return value-
- return 0 when a "narrowing is needed, evenf if always compatible.
- Also start by calling Type.isSame.
- (static isCompatibleWithValue): Don't need equality test.
- * ClassType.java (isCompatibleWithValue): Check Type.isSame.
- * AnnotationEntry.java (asAnnotationValue): Generalize String
- value to allow allow any CharSequence.
- 2016-09-03 Per Bothner <per@bothner.com>
- * ClassType.java (JAVA_9_VERSION): New constant.
- * ClassType.java (checkSingleAbstractMethod): Make some locals final.
- 2016-08-29 Per Bothner <per@bothner.com>
- * ClassType.java (checkSingleAbstractMethod): Fix logic to properly
- search superclasses - specifically Object. Fixes Savannah
- bug #48938 "lambda cannot be cast to java.util.Comparator".
- (getMethods): Search Object as superclass of interfaces.
- Also fix a performance bug.
- * Filter.java: Make parameterized.
- * Type.java (promoteIfUnsigned): Fix bug which caused boolean nd char
- to be propmoted to int.
- 2016-07-12 Per Bothner <per@bothner.com>
- * Type.java (promotedIfUnsigned): New method.
- 2016-06-21 Per Bothner <per@bothner.com>
- * EnclosingMethodAttr.java (print): Fix handling when
- method_index is 0.
- 2016-04-28 Tom Bousso <tombousso@gmail.com>
- * TypeVariable.java (equals): New method.
- 2016-04-24 Per Bothner <per@bothner.com>
- * Method.java (makeCloneMethod): Set classfile from Type.objectType
- rather than Type.pointer_type which is not initialized when
- makeCloneMethod is called. Also make the method non-public.
- This fixes Savannah bug #47772 "Array clone doesn't work".
- 2016-04-21 Per Bothner <per@bothner.com>
- * Type.java (isSame): New static convenience method.
- * ParameterizedType.java (equals): New method.
- 2016-02-11 Per Bothner <per@bothner.com>
- * ClassType.java (isCompatibleWithValue): Return 2 (no coercion needed)
- in more cases.
- * Type.java (isCompatibleWithValue): Check if types are identical.
- 2016-01-27 Per Bothner <per@bothner.com>
- * Type.java (errorType): Change to instance of SpecialObjectType.
- 2015-10-14 Per Bothner <per@bothner.com>
- * CodeAttr.java (processFixups): Guard against 'goto' cycle/
- 2015-08-13 Jamison Hope <jrh@theptrgroup.com>
- * ClassType.java (getAnnotation): New method.
- * RuntimeAnnotationsAttr.java (readAnnotationEntry): Set
- annotationType when entry is read to avoid NullPointerException in
- getAnnotation() later.
- * AnnotationEntry.java (Value.getValue): Convert enum values.
- 2015-06-04 Per Bothner <per@bothner.com>
- * PrimType.java (compare): Handle signed vs unsigned types.
- 2015-06-03 Per Bothner <per@bothner.com>
- * PrimType.java (numberHierarchy): Add IntFraction.
- 2015-05-29 Per Bothner <per@bothner.com>
- * PrimType.java (isUnsigned): New method.
- * CodeAttr.java (fixUnsigned): New method.
- (emitConvert): Change parameter types to PrimType.
- Handle converting to/from unsigned integer types.
- 2015-05-20 Per Bothner <per@bothner.com>
- * PrimType.java (numberHierarchy): Add gnu.math.UXxx classes.
- * ClassType.java (getDeclaredMethod): Prefer non-synthetic
- non-bridge methods.
- 2015-05-15 Per Bothner <per@bothner.com>
- Optimizations to avoid redundant goto.
- * CodeAttr.java (FIXUP_DEFINE_UNREACHABLE): New kind of fixup.
- (FIXUP_NONE): Remove unneeded fixup kind.
- (fixupSet, fixupEncode, setPreviousLabelHere): New convenience methods.
- (processFixups): Optimize many redundant gotos and transfer-to-goto.
- * Label.java (defineRaw): Add overload to specify fixup-kind.
- * SwitchState.java: Tweaks to stack-types and fixup-chaining.
- 2015-05-13 Per Bothner <per@bothner.com>
- * Variable.java (scope): Make private.
- (getScope, setScope): New accessor methods.
- * LocalVarsAttr.java: Update accordingly.
- * Scope.java: Likewise.
- 2015-05-13 Per Bothner <per@bothner.com>
- * Label.java (setTypes): Add sanity check.
- 2015-05-08 Jamison Hope <jrh@theptrgroup.com>
- * CodeAttr.java (disAssemble): Fix buglet in handling of "ret"
- instruction.
- 2015-04-16 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitCatchStart): New overload that takes a type,
- and leaves it to the caller to save/use the exception.
- 2015-03-30 Per Bothner <per@bothner.com>
- * ObjectType.java (promote): Remove - we don't want to promote
- nullType to objectType, since the latter is needed for stack-maps.
- * CodeAttr.java (gotoFinallyOrEnd): Revert previous change,
- since above change makes it unnecessary.
- * CodeAttr.java (addHandle): Note that we're reachable here.
- * CodeAttr.java (disAssembleWithFixups): Print FIXUP_TRY_HANDLER.
- 2015-03-29 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitPushNull): Add overload that takes a type.
- (gotoFinallyOrEnd): Specify type of pushed null, in case we need
- to emit a stack-map entry.
- 2015-03-25 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitFinallyEnd): Check if reachableHere() - otherwise
- clear end_label and don't generate any code.
- 2015-02-28 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitWithCleanupCatch, emitWithCleanupDone):
- Don't save/restore stack types - that is handled by the Label objects.
- (emitTryEnd - 0-argument): Decprecate and make empty.
- (emitFinallyStart): Re-order code we only have forward gotos.
- 2015-02-17 Per Bothner <per@bothner.com>
- * ClassType.java (removeField): New method.
- * Method.java (setReturnType): New method.
- 2015-01-30 Per Bothner <per@bothner.com>
- * ClassType.java (isCompatibleWithValue): Explicit handling of nullType.
- 2015-01-29 Per Bothner <per@bothner.com>
- * ClassType.java (isCompatibleWithValue): If this is an interface,
- and the value type is a class that does not implement the interface
- consider it incompatible.
- 2014-12-22 Per Bothner <per@bothner.com>
- * Type.java (isCompatibleWithValue): New static helper.
- 2014-12-15 Victor van den Elzen
- * SpecialObjectType.java (compare): Check for comparing
- toStringType to itself.
- 2014-12-09 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitIfIntGEqZero, emitIfIntGEq): New methods.
- 2014-12-08 Per Bothner <per@bothner.com>
- * ExitableBlock.java (exit): Do nothing if not reachableHere.
- * IfState.java (start_stack_size, stack_growth, then_stacked_types):
- Remove fields. This old logic was redundant, since using a Label
- handles type merging just as well. Actually better, since the old
- code had problem setting start_stack_size correctly in some cases.
- * CodeAttr.java: Update and simplify accordingly.
- 2014-12-02 Per Bothner <per@bothner.com>
- * ClassType.java (getAllInterfaces): New method.
- (getMethods, getMethod): Use getAllInterfaces.
- 2014-11-20 Per Bothner <per@bothner.com>
- * SwitchState.java (finish): Don't define after_label if nothing
- reaches it.
- 2014-11-03 Per Bothner <per@bothner.com>
- * CodeAttr.java (disAssemble): Handle invoke dynamic.
- * CpoolInvokeDynamic.java (print): Remove excess space.
- 2014-08-28 Per Bothner <per@bothner.com>
- * Type.java (isCompatibleWithValue): Change interpretation of return
- value so 2 means no run-time conversion/check needed.
- * ClassType.java (isCompatibleWithValue): New overload.
- * ArrayType.java (isCompatibleWithValue): New overload.
- * TypeVariable.java (isCompatibleWithValue): New overload.
- 2014-08-27 Per Bothner <per@bothner.com>
- * ClassType.java (isSubclass, compare): Since toStringType is no
- longer a ClassType, remove some dead code.
- 2014-08-21 Per Bothner <per@bothner.com>
- * SwitchState.java (finish): Update, since defaultLabel is
- now allocated in constructor.
- 2014-08-12 Andrea Bernardini <andrebask@gmail.com>
- * SwitchState.java (finish): Add code to avoid
- possible integer overflows.
- 2014-08-11 Per Bothner <per@bothner.com>
- * Type.java (javalangCharacterType): New static field.
- 2014-07-10 Andrea Bernardini <andrebask@gmail.com>
- * SwitchState.java: code readability improvements.
- 2014-07-29 Per Bothner <per@bothner.com>
- Add support for generating MethodHandle constant pool entries.
- * CpoolMethodHandle.java: New constructor.
- (hashCode, write): New methods.
- * ConstantPool.java (addMethodHandle): New methdods.
- * CodeAttr.java (emitPushMethodHandle): New method.
- * Type.java (javalanginvokeMethodHandleType): New field.
- 2014-07-27 Per Bothner <per@bothner.com>
- * SpecialObjectType.java: New class that extends ObjectType.
- Some properties moved from gnu.kawa.lispexpr.LangObjType.
- * Makefile.am: Update accordingly.
- * ObjectType.java (getImplementationType): No longer needed.
- * Type.java (nullType, toStringType): Now are SpecialObjectType.
- 2014-07-10 Per Bothner <per@bothner.com>
- Fix for Savannah bug #42713: "MalformedParameterizedTypeException
- thrown when compiling". Actually 2 fixes: (1) Make the call
- getGenericType lazy (2) don't addField if field is private.
- * Location.java (type): Make private.
- (getType): Make non-final.
- * CodeAttr.java: Update accordingly.
- * ClassTypeWriter.java: Likewise.
- * Field.java (getType): New override. If we have a reflect-field
- and type is null, call getGenericType.
- * ClassType.java (addField(java.lang.reflect.Field)): Inline.
- (addFields): Inline here. Leave type as null for now,
- Also skip if private.
- 2014-06-30 Per Bothner <per@bothner.com>
- * PrimType.java (convertToRaw): New method.
- 2014-06-25 Per Bothner <per@bothner.com>
- * Method.java (rmethod): Change type to AccessibleObject.
- 2014-06-25 Per Bothner <per@bothner.com>
- * Field.java (getAnnotation): New method.
- * Method.java (rmethod): New field.
- (getAnnotation): New method.
- * ClassType.java (AddField): New convenience method.
- It also sets rfield.
- (addField): Use it.
- (addMethod): Set Method's rmethod field.
- * RuntimeAnnotationsAttr.java (getAnnotation *2): New methods.
- * ArrayType.java (getRawType): New method.
- 2014-06-16 Per Bothner <per@bothner.com>
- * SwitchState.java: Various fixes, mainly becase fixupChain
- doesn't attempt to manage and propagate type-states.
- 2014-04-18 Per Bothner <per@bothner.com>
- * CodeAttr.java (disAssembleWithFixups): Fix some logic bugs,
- most critically in handling of FIXUP_CASE.
- (processFixups): Add commented-out call to disAssembleWithFixups.
- Support new Java8 constant pool entry types.
- * ConstantPool.java (METHOD_HANDLE, METHOD_TYPE, INVOKE_DYNAMIC,
- ANY_REF): New constants.
- (getForced): Handle new types.
- * CpoolInvokeDynamic.java: New class, extends CpoolEntry.
- * CpoolMethodHandle.java: New class, extends CpoolEntry.
- * CpoolMethodType.java: New class, extends CpoolEntry.
- * Makefile.am: Update accordingly.
- 2014-03-01 Per Bothner <per@bothner.com>
- * Scope.java (fixParamNames): New method to rename parameter names.
- 2014-02-17 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java: Make sure Error is uncaught or re-thrown.
- * ClassType.java: Likewise.
- 2014-02-12 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitAndThen): New method.
- (pushIfState): New private convenience method. Use as needed.
- * IfState.java (andThenSet): New field.
- 2013-12-29 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitGotoIfNull, emitGotoIfNonNull): New methods.
- 2013-12-02 Per Bothner <per@bothner.com>
- * CodeAttr.java (castNeeded): Force top-type to raw type.
- This is needed for TypeVariable in addition to UninitializedType.
- 2013-11-13 Per Bothner <per@bothner.com>
- * ObjectType.java (getReflectClass): Simplify since we can
- now assume that Throwable#getCause is available.
- 2013-11-07 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java (loadClass): Fix logic error from change
- made 2008-05-10. Fixes bug reported by Charles Turner.
- 2013-09-16 Per Bothner <per@bothner.com>
- * ClassType.java (JDK_1_8_VERSION): New constant.
- * CodeAttr.java (emitNewArray): Fix logic error noted by
- Charles Turner.
- 2013-07-18 Per Bothner <per@bothner.com>
- * Variable.java (freeLocal): Avoid out-of-bounds indexing of
- local_types array. This fixes Savannah bug # 39151
- "ArrayOutOfBoundsException in Variable.freeLocal".
- 2013-07-11 Per Bothner <per@bothner.com>
- * CodeAttr.java (pushAutoPoppableScope): New method.
- (popScope): Keep popping Scopes until we pop a non-autoPop Scope.
- * Scope.java (autoPop): New field.
- * Scope.java (getStartLabel, getEndLabel): New accessor methods.
- * CodeAttr.java (emitTailCall): Add overloaded method.
- 2013-06-28 Per Bothner <per@bothner.com>
- * ClassType.java (writeToStream): Set ADD_ENCLOSING_DONE
- in addition to ADD_FIELDS_DONE and ADD_METHODS_DONE.
- 2013-06-02 Per Bothner <per@bothner.com>
- * Type.java (isCompatibleWithValue): New method.
- (lowestCommonSuperType): Minor bullet-proofing.
- 2013-02-10 Per Bothner <per@bothner.com>
- * Type.java (lowestCommonSuperType): Minor tweak.
- 2012-12-12 thomas kirk <tk@research.att.com>
- * ZipLoader.java (loadAllClasses): Don't load duplicate.
- Fixes Savannah bug #37910 "gnu.bytecode.ZipLoader:loadAllClasses
- not checking for previous definitions".
- 2012-12-09 Per Bothner <per@bothner.com>
- * TypeVariable.java: @Override annotation should not be in comment.
- * ParameterizedType.java: Likewise.
- 2012-11-05 Per Bothner <per@bothner.com>
- Fix bug in encodding of enum annotation values. They should
- use the enum type's descriptor (signature), not "internal name".
- * AnnotationEntry.java (decodeEnumEntry): New static method.
- (print): Use it.
- * RuntimeAnnotationsAttr.java (assignConstants): Use decodeEnumEntry.
- * ClassType.java (nameToSignature): New static method.
- (setName): Use it.
- 2012-10-06 Per Bothner <per@bothner.com>
- Change so reading a class cann detecte neverReturnsType easily.
- * Type.java (neverReturnsType): Change to use Type$NeverReturns.
- (NeverReturns): New helper class.
- 2012-09-27 Per Bothner <per@bothner.com>
- * Field.java (setModifiers): New method.
- 2012-08-16 Per Bothner <per@bothner.com>
- * ExitableBlock.java: When exiting, we may need to pop the stack.
- 2012-07-17 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitInvoke): Use invokespecial if method is private.
- Fixes Savannah bug #36856 "More Dalvik issues".
- 2012-06-19 Per Bothner <per@bothner.com>
- * Label.java (isUsed): New method.
- 2012-04-22 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitFi): Fix logic for updating unreachability.
- 2012-02-03 Per Bothner <per@bothner.com>
- * Field.java (hasConstantValueAttr): New method.
- 2012-01-27 Per Bothner <per@bothner.com>
- * ExitableBlock.java (finish): If appropriate, do setUnreachabe().
- This fixes Savannah bug #35362: "endless loop + unused continuation".
- 2011-12-12 Per Bothner <per@bothner.com>
- * Type.java (isInterface): New method.
- 2011-12-01 Per Bothner <per@bothner.com>
- * ClassType.java (compare): Fix thinko.
- * ClassType.java (isSubclass): Add explicit test for Object.
- This is both for performance and it helps work around a bug in
- subtyping a not-yet resolved ClassExp.
- 2011-10-29 Jamison Hope <jrh@theptrgroup.com>
- * PrimType.java (unboxedType): New static convenience method.
- 2011-10-07 Per Bothner <per@bothner.com>
- * ParameterizedType.java (getReflectClass): New method.
- 2011-10-01 Jamison Hope <jrh@theptrgroup.com>
- * Method.java (isNative): New method.
- 2011-08-04 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitInc): If increment is zero, do nothing.
- 2011-08-03 Per Bothner <per@bothner.com>
- * StackMapTableAttr.java (encodeVerificationType): Fix handling of
- UninitializedType - which was broken when parameterized types were
- added. This fixes Savannah bug #33916 "Build error with Java7".
- 2011-07-27 Per Bothner <per@bothner.com>
- * ParameterizedType.java (getName): Call toString().
- * Type.java (getName): Make non-final.
- 2011-07-12 Per Bothner <per@bothner.com>
- * Type.java (javalangannotationAnnotationType): New static field.
- * AnnotationEntry.java (asAnnotationValue): Moved from
- gnu/kawa/reflect/MakeAnnotation.java.
- (addMember(String,Object,Type)): New convenience method.
- 2011-06-29 Per Bothner <bothner@kuling.bothner.com>
- Improved support for parameterized types.
- * TypeVariable.java: New class, extends ObjectType.
- * Makefile.am: Update accordingly.
- * Type.java (make(java.lang.reflect.Type)): Handle TypeVariable.
- Fix thinko.
- * StackMapTableAttr.java (encodeVerificationType): Use getRawType.
- * ClassType.java (getTypeParameters): New method.
- (addMethod): Make use of getGenericParameterTypes etc to set types
- according to generic Java types.
- * Method.java (makeGenericSignature): New method.
- (assignConstants): Also emit Signature attribute if appropriate.
- * ParameterizedType.java (getRawType): Refine to return a ClassType.
- (getTypeArgumentBound): Make more robust.
- (getGenericSignature): A tweak to emit a '*' wildcard.
- (emitCoerceFromObject): New method.
- 2011-06-29 Per Bothner <bothner@kuling.bothner.com>
- * Attribute.java (next): Make private.
- * ClassTypeWriter.java (printAttributes): Use getNext method.
- * InnerClassesAttr.java (getFirstInnerClasses): Likewise.
- * EnclosingMethodAttr.java (getFirstEnclosingMethod): Likewise.
- 2011-06-20 Per Bothner <bothner@kuling.bothner.com>
- Start of support for parameterized (generic) types.
- * ParameterizedType.java: New class, extends ObjectType.
- * Makefile.am: Update accordingly.
- * Field.java (assign_constants): Generate Signature attribute if needed.
- * CodeAttr.java (castNeeded): Use getRawType, not
- getImplementationType, since later may be a ParameterizedType.
- * Location.java (getSignature): Likewise get signature of raw typw.
- * Type.java (genericSignature): New field.
- (getGenericSignature, setGenericSignature,
- getMaybeGenericSignature): New methods.
- (make): New non-public method to map java.lang.reflect.Type
- to gnu.bytecode.Type.
- (make): Try former method, but fall back to using Class if that fails.
- * ClassType.java (addField): Use new 2-argument make method.
- 2011-06-19 Per Bothner <bothner@kuling.bothner.com>
- * ClassType.java (getDeclaredStaticMethod): New method.
- (getDeclaredMethod): New non-public overloaded method.
- * ObjectType.java (compare): Make more robust/correct.
- 2011-04-10 Per Bothner <per@bothner.com>
- * Type.java (getType, make): Use setExisting method.
- * ObjectType.java (getReflectClass): Likewise.
- 2011-03-07 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitStore): Do nothing if not reachableHere().
- (emitInvokeMethod): Likewise.
- (emitRawReturn): Likewise.
- (emitCatchStart): Note we're reachable at the handler.
- Fixes Savannah bug#32678 "set! and endless loop".
- 2011-03-04 Per Bothner <per@bothner.com>
- * Scope.java (noteStartFunction): Don't call setTypes on start address,
- as setStartPC calls define, which calls setTypes anyway.
- * Label.java (mergeLocalType): Check length of old localTypes array.
- This fixes Savannah bug #32656 "ArrayIndexOutOfBoundsException in
- mergeLocalType".
- * Label.java (setTypes): If the new local variable array is shorter
- than the old one, call mergeLocalType so notifyTypeChangeListeners
- gets called.
- This fixes Savannah bug #32657 "Verification error with JDK7".
- 2011-03-02 Per Bothner <per@bothner.com>
- * ObjectType.java (getContextClassLoader): Remove special hack for
- getting system ClassLoader (rather than context ClassLoader) on Android
- - it causes problems with newer versions of Android and isn't needed.
- It's unclear if the hack is still needed for older Android versions.
- 2011-01-07 Per Bothner <per@bothner.com>
- * AnnotationEntry.java (print): Don't print initial identation
- or final newline here.
- * RuntimeAnnotationsAttr.java (print): Do it here instead.
- * AnnotationEntry.java (Value.print): Thus we can avoid excess
- whitespace when printing nested annotation values.
- * ClassType.java (isFinal, isAnnotation): New convenience methods.
- (compare): More precide results when comparing annotation type
- or final class versus interface.
- 2011-01-06 Per Bothner <per@bothner.com>
- * PrimType.java (boxedType): Handle voidType.
- 2011-01-03 Per Bothner <per@bothner.com>
- * ClassType.java (getDefaultConstructor): New method.
- 2010-12-26 Per Bothner <per@bothner.com>
- * RuntimeAnnotationsAttr.java (maybeAddAnnotation): New method.
- * AnnotationEntry.java (getRetention, hasTarget): New methods.
- 2010-12-01 Per Bothner <per@bothner.com>
- * AnnotationEntry.java: Also implement
- java.lang.reflect.InvocationHandler.
- (invoke): New method.
- (Value.getValue, Value.print): Add/fix support for enums and arrays.
- * RuntimeAnnotationsAttr.java (getAnnotationsAttr, addAnnotation,
- getRuntimeVisibleAnnotations, getRuntimeInvisibleAnnotations):
- New methods.
- (assignConstants, write): Add/fix support for enums and arrays.
- 2010-12-14 Per Bothner <per@bothner.com>
- * RuntimeAnnotationsAttr.java (write): Write entry count.
- (assignConstants): Count space needed for entry count.
- * RuntimeAnnotationsAttr.java (write): Add missing break statement.
- * RuntimeAnnotationsAttr.java (assignConstants): String annotation
- value uses a UTF8 constant, not a String constant.
- 2010-12-01 Per Bothner <per@bothner.com>
- * AnnotationDefaultAttr.java: New class, extends Attribute.
- * Makefile.am: Update accordingly.
- * ClassFileInput.java (readAttribute): Read AnnotationDefault attribute.
- * RuntimeAnnotationsAttr.java (write, assignConstants): Change to
- static, so they can be called from AnnotationDefaultAttr.
- * AnnotationEntry.java (print): Use printQuoteString for strings.
- 2010-11-29 Per Bothner <per@bothner.com>
- Aim for complete support for Annotations.
- * AttrContainer.java (getConstants): New method.
- * Attribute.java (getConstants): New method.
- * Field.java (getConstants): New method.
- * ClassTypeWriter.java (printOptionalIndex): Skip if index is <= 0.
- * AnnotationEntry.java (Value): New member class.
- Add partial javax.lang.model.AnnotationValue support.
- Add support for printing AnnotationEntry and Value instances.
- * RuntimeAnnotationsAttr.java: Add support for parsing, generating,
- and printing Annotation attributes.
- Split support for printing RuntimeAnnotationsAttr into separate
- pieces: First read/parse, then separate print parsed AnnotationEntrys.
- * ClassFileInput.java (readAttribute): Change to use new
- RuntimeAnnotationsAttr.readAnnotationEntry rather than reading an
- unparsed data array.
- 2010-11-26 Per Bothner <per@bothner.com>
- * dump.java (main): If the context ClassLoader is null,
- use the SystemClassLoader.
- 2010-11-22 Per Bothner <per@bothner.com>
- * StackMapTableAttr.java (encodeVerificationType): Fix handling of
- Type.nullType - it's imlementation-type is objectType.
- 2010-11-18 Per Bothner <per@bothner.com>
- * ClassType.java (getSimpleName): Make use of enclosingMember,
- rather than unreliable scanning for '$'.
- * InnerClassesAttr.java (print): Add a printOptionalIndex call.
- 2010-10-26 Per Bothner <per@bothner.com>
- * PrimType.java (compare): Catch case where other is a LangPrimType.
- For example compare of Type.intType and Scheme.booleanType should be -1.
- 2010-10-24 Per Bothner <per@bothner.com>
- * Type.java (getSignature): Make non-final.
- * ArrayType.java (<init>): Don't set signature yet, instead set it
- lazily, as component type might not have a name yet.
- (getSignature): If signature field is null, set it now.
- * Field.java (assign_constants): Use getSignature method.
- * LocalVarsAttr.java: Likewise.
- 2010-10-23 Per Bothner <per@bothner.com>
- * Type.java (isExisting): New method.
- * ObjectType.java (isExisting): Simplify using new isExisting.
- 2010-10-16 Per Bothner <per@bothner.com>
- * PrimType.java (compare): Treat boolean as equal to java.lang.Boolean.
- Likewise for char and java.lang.Character.
- 2010-10-06 Per Bothner <per@bothner.com>
- * PrimType.java (findInHierarchy): Calculate priority/hierarchy of
- Number class.
- (compare): Use above to compare primtive type with Number class.
- 2010-10-05 Per Bothner <per@bothner.com>
- Fix Savannah 31250 "try/catch & endless loop".
- * Scope.java (setStartPC): We don't want to set the reachable flag.
- 2010-09-30 Per Bothner <per@bothner.com>
- * ClassType.java (compare): Special-case the care of comparing
- Object and an inteface.
- 2010-09-29 Per Bothner <per@bothner.com>
- Fix various problems with StackMapTable.
- * SwitchState.java: Replace calls to Label#setTypesSame (optimization
- which causes problems with StackMapTable) by calls to setTypes.
- * StackMapTableAttr.java (emitStackMapEntry): Don't include unused
- "tail" locals in local variable count/
- * Variable.java (freeLocal): Also null out local_types element.
- * CodeAttr.java (previousLabel, varsSetInCurrentBlock): New fields.
- (fixupAdd): Explicitly note when needsStackMapEntry.
- (noteVarType): Note definition in varsSetInCurrentBlock array.
- (processFixups): Use needsStackMapEntry.
- (mergeLabels): Simplify.
- * Scope.java (setStartPC): Need to use define rather than more
- efficinet defineraw, since tailcalls may jump to the start label.
- * Label.java: Add a framework so that when a locaTypes[varnum] is
- changed (nulled) then also invalidate for any labels that depend
- on this labels - i.e. that the variable flows to.
- (needsStackMapEntry, typeChangeListeners): New fields.
- (mergeLocalType, notifyTypeChangeListeners, addTypeChangeListener,
- addTypeChangeListeners): New methods.
- 2010-09-28 Per Bothner <per@bothner.com>
- * Method.java (init_param_slots): Change to just call startCode.
- 2010-09-20 Per Bothner <per@bothner.com>
- * ClassType.java (checkSingleAbstractMethod): New method.
- * ClassType.java (AbstractMethodFilter): New static member class.
- (getAbstractMethods): New method.
- 2010-09-17 Per Bothner <per@bothner.com>
- * PrimType.java (boxedType): New method.
- (emitCoerceToObject): Use boxedType.
- * PrimType (compare): Return -3 if not shown to be compatible.
- 2010-08-28 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitInvokeMethod): After initialization we also need
- to remove UninitializedType from the local_types array.
- * Label.java (mergeTypes): New method. It differs from
- Type.lowestCommonSuperType in that merging a PrimType and a
- non-PrimType returns null rather than objectType.
- 2010-08-07 Per Bothner <per@bothner.com>
- * Type.java (class ClassToTypeMap): Change to a member class.
- Remove default constructor.
- (ClassToTypeMap.matches): Fix - parameter should be key type,
- not value type.
- 2010-08-01 Per Bothner <per@bothner.com>
- * ClassType.java: Add 'synchronized' a bunch of places. This is needed
- when reading "existing" classes, because we share a global
- mapNameToType and hence the set of existing classes is shared.
- * Field.java: Likewise.
- * ClassType.java (make(String,ClassType)): Deprecate.
- 2010-07-19 Per Bothner <per@bothner.com>
- * CpoolFloat.java: Remove no-longer-used class.
- Replaced by CpoolValue1.java - in 1997!
- 2010-04-10 Per Bothner <per@bothner.com>
- * AnnotationEntry.java: New class - a placeholder for future
- annotation support.
- 2010-04-02 Per Bothner <per@bothner.com>
- * PrimType.java (coerceFromObject): Add support for boolean.
- 2010-01-10 Per Bothner <per@bothner.com>
- * RuntimeAnnotationsAttr.java (printAnnotationElementValue):
- Print a class annotation value.
- Support reading/printing (but not yet generating) annotations.
- * RuntimeAnnotationsAttr.java: New class, extends MiscAttr, for
- "RuntimeVisibleAnnotations" or "RuntimeInvisibleAnnotations".
- * Makefile.am: Update accordingly.
- * ClassTypeWriter.java (PRINT_EXTRAS): New flag.
- (printSpaces, getCpoolEntry, printConstantTersely,
- printContantUtf8AsClass): New methods.
- * ClassFileInput.java (readAttribute): Handle
- "RuntimeVisibleAnnotations" and "RuntimeInvisibleAnnotations".
- * MiscAttr.java (u1, u2): New methods.
- * Type.java (printSignature): Add fall-back/default.
- * StackMapTableAttr.java (write): Call super write.
- * ClassFileInput.java (getClassConstant): New convenience method.
- (readClassInfo): Use it.
- * dump.java (main): Better error message if opening jar: URL fails.
- * StackMapTableAttr.java: Change to extend MiscAttr.
- Move data, dataLength to MiscAttr.
- Data and fdataLength now include the initial 'numEntries' field.
- (put1, pu2, u1, u2): Likewise.
- * ClassFileInput.java (readAttribute): Change since the data array
- passed to StackMapTableAttr includes initial 2-byte numEntries field.
- * MiscAttr.java (put1, pu2, u1, u2): Moved from StackMapTableAttr.
- (length): Rename to dataLength.
- 2009-10-19 Per Bothner <per@bothner.com>
- * Type.java (getRealType): New method.
- 2009-09-29 Per Bothner <per@bothner.com>
- * ClassTypeWriter.java (setClass): New method.
- * ClassTypeWriter.java (printMethod): New method.
- (printMethods): Use it.
- * ArrayClassLoader.java (getResourceAsStream): New overriding method.
- If asking with a matching .class file, open a ByteArrayInputStream
- on the class bytes - which means these now have to be preserved
- even after the class has been loaded.
- 2009-09-15 Per Bothner <per@bothner.com>
- * Type.java (emitConvertFromPrimitive): New method.
- 2009-09-14 Per Bothner <per@bothner.com>
- * PrimType.java (coerceFromObject): Use valueOf methods, if JAVA5.
- * CodeAttr.java (castNeeded): Return false if types match.
- In addition to being an optimization, this makes primitive-array
- types work.
- 2009-09-12 Per Bothner <per@bothner.com>
- * PrimType.java (emitCoerceToObject): Use '{Integer,...}.valueOf'
- methods rather than 'new {Integer,...}' if Java5 or later.
- 2009-08-05 Per Bothner <per@bothner.com>
- * ClassType.java (isAccessible): Fix buglet.
- * ClassType.java (getMethods): Follow java inheritance spec more
- closely. We don't need the call context - but whether a method is
- inherited may depend on whether they're in the same package.
- Update calls.
- This fixes Savannah bug #27019 "setLength method of StringBuilder
- not found".
- * ObjectType.java (getMethods): Update, and create @deprecated stub.
- * ArrayType.java (getMethods): Update for new API.
- * Method.java (<init>): New constructor.
- 2009-07-29 Per Bothner <per@bothner.com>
- * ClassType.java (getMethods(Filter,int,Vector,String)): Generalize
- Vector argument to List<Method>.
- (getMethods(Filter,int,Method[],String)): Re-implement to use
- above method.
- (countMethods, getMethods(Filter,int)): Likewise.
- * ObjectType.java (getMethod): Likewise generalize Vector->List.
- 2009-07-15 Per Bothner <per@bothner.com>
- * CodeAttr.java (noteVarType): Make sure re-sized array is big enough.
- Follow-up to previous fix for Savannah bug #27011
- "ArrayIndexOutOfBoundsException after 20 local variables" - now
- with 42 variables.
- 2009-07-11 Per Bothner <per@bothner.com>
- * CodeAttr.java (noteVarType): Make sure fresh array is big enough.
- This fixes Savannah bug #27011 "ArrayIndexOutOfBoundsException after
- 20 local variables".
- 2009-07-03 Per Bothner <per@bothner.com>
- * CodeAttr.java: Fix thinko when comparing opcodes.
- Fixes bug reported by Martin Ward.
- 2009-07-02 Per Bothner <per@bothner.com>
- * CodeAttr.java (setType): Fix thinko - compare against stack length.
- Also rename local labelSP to usedStack.
- Fixes bug reported by Helmut Eller.
- 2009-06-28 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitStore): Don't check if var is dead - this can be
- useful for pushing parameters to a previously compiled inlined procedure,
- followed by a jump to the procedure label - see gnu.expr.ApplyExp.
- 2009-04-21 Per Bothner <per@bothner.com>
- * ObjectType.java (getContextClassLoader): Reportedly on Android
- Thread#getContextClassLoader doesn't work.
- 2009-04-16 Per Bothner <per@bothner.com>
- * Type.java (errorType): New static.
- 2009-02-23 Per Bothner <per@bothner.com>
- * Type.java (class ClassTypeToMap): New class.
- (mapClassToType): Change to use ClassTypeToMap instead of WeakHashMap.
- 2009-01-14 Per Bothner <per@bothner.com>
- * dump.java (main): Make more bullet-proof.
- (usage): Fix typos for jar: URL syntax.
- 2008-12-29 Per Bothner <per@bothner.com>
- * ClassType.java (isAccessible): New convenience method. This also
- checks whether the member is static, in case of protected access.
- 2008-12-28 Per Bothner <per@bothner.com>
- * SwitchState.java (finish): Optimize a single 'case 0'.
- 2008-12-27 Per Bothner <per@bothner.com>
- Generate StackMapTable attributes.
- * ExitableBlock.java: New class.
- * Makefile.am: Update accordingly.
- * CodeAttr.java (startExitableBlock, endExitableBlock): New methods.
- * StackMapTableAttr.java (emitStackMapEntry): Generate an entry
- for a given position in the StackMapTable attribute. Handles
- appropriate encoding and compression.
- * SwitchState.java (typeState): Remove field - instead we remember
- the type-state in cases_label.
- (switchValuePushed): Do the popType of the switch value here.
- (addCase, addDefault): Remove methods with explicit Labels.
- (exitSwitch): New method.
- * CodeAttr.java (startSwitch): Don't do popType here.
- * UninitializedType.java (label): New field.
- (<init>): New constructor - takes label of new instruction.
- * Method.java (initCode): Call new noteParamTypes methods.
- * Variable.java (reserveLocal): Don't explicitly set UninitializedType
- here - that is taken care of in noteParamTypes.
- * CodeAttr.java: Support for genering StackMapTable.
- That requires not using jsr/ret.
- (useJsr): New method.
- (flag): New field.
- (noteParamTypes, noteVarType, setTypes, emitPushDefaultValue,
- emitStoreDefaultValue): New methods.
- (emitStore): Do noteVarType.
- (doPendingFinalizers, saveStackTypeState, restoreStackTypeState):
- Remove methods.
- (emitTryStart, emitTryEnd, emitCatchStart, emitFinallyStart,
- emitFinallyEnd, emitTryCatchEnd): Rewrite to not require jsr/ret.
- (processFixups): Rewrite to emit StackMapTable entries.
- * Scope.java (noteStartFunction): New convenience method.
- * Label.java (stackTypes, localTypes): New fields.
- (setTypes, setTypesSame, defineRaw): New methods.
- (define): Update type-state.
- * TryState.java (returnSwitch): Remove field.
- (exitCases, tryClauseDone): New fields.
- (outerHandler): New method.
- 2008-12-27 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitArrayLoad, emitArrayStore): New convenience
- methods that don't require the element type to be explicitly specified.
- * PrimType.java (promotedType): New method.
- * Type.java (lowestCommonSuperType): Use it to "merge" PrimTypes.
- Merging otherwise incompatible ObjectTypes yields java.lang.Object.
- 2008-12-23 Per Bothner <per@bothner.com>
- * ClassType.java (isAccessible): Add extra parameter for the
- "receiver" type, so we can properly check protected access.
- 2008-12-16 Yaroslav Kavenchuk <kavenchuk@gmail.com>
- Per Bothner <per@bothner.com>
- * Method.java (makeSignature): New method.
- 2008-11-23 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitBinop): Make public, so ArithOp can use it.
- * CodeAttr.java (putLineNumber): Check for null filename.
- 2008-11-16 Per Bothner <per@bothner.com>
- Make 'dump' more convenient and more flexible.
- * ClassTypeWriter.java (PRINT_VERSION, PRINT_VERBOSE,
- PRINT_CONSTANT_POOL, PRINT_CONSTANT_POOL_INDEXES): New constants.
- (setFlags): New field.
- (printConstants): Remove field - use bits in flags field instead.
- (print()): New flags field; also print attributes.
- (print(ClassType), printAttributes): New methods.
- * ClassFileInput.java (readFormatVersion): New method.
- * dump.java (<init>): Change calling-sequence and make non-public.
- (printAttributes): Move to super-class.
- (process): New methods. Handles .jar/.zip as well as .class files.
- (main): Create ClassTypeWriter immediately.
- New handling to use process and accept class names.
- (uriSchemeLength, uriSchemeSpecified): Methods coped from
- gnu.text.Path.
- (usage): Expand.
- * ObjectType.java (getContextClassLoader): New method.
- (getContextClass): Use it.
- * ConstantValueAttr.java (print): Use printOptionalIndex.
- 2008-11-13 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitInc): Generalize type check.
- 2008-11-11 Per Bothner <per@bothner.com>
- * StackMapTableAttr.java (dataLength): New field, for when we
- generate this attribute. Use it in place of data.length.
- * StackMapTableAttr.java (print): Print locals/stack offset before
- types, and generally make printing nicer.
- (getMethod): New method.
- (printVerificationType, extractVerificationType, reallocBuffer,
- extractVerificationTypes, printVerificationTypes): New methods.
- (print_verification_type, print_verification_types): Remove methods.
- 2008-09-16 Per Bothner <per@bothner.com>
- Add support for try-finally without using jsr,
- which is incompatible with StackMapTable.
- * TryState.java (returnSwitch, exception): New fields.
- * CodeAttr.java (callFinally): New helper function.
- (doPendingFinalizers): Use it.
- (emitTryStart, emitTryEnd, emitFinallyStart, emitFinallyEnd):
- Simulate jsr using a switch.
- 2008-09-10 Per Bothner <per@bothner.com>
- Implement tracking of "uninitialized objects", as a preliminary
- step for StackMapTable generation.
- * UninitializedType.java: New class, extends ObjectType.
- * Makefile.am: Update accordingly.
- * Variable.java (reserveLocal): Note that the 'this' parameter in
- an <init> starts out as uninitialized.
- * CodeAttr.java (emitPushThis): Use emitLoad: If the variable
- is uninitialized, we need to push an UninitializedType.
- (emitNew): The pushed type is a new UninitializedType.
- (emitInvokeMethod): Handle checkin and fixups for <init> methods:
- Should be UninitializedType, change to regular ClassType after.
- (castNeeded): Handle UninitializedType.
- 2008-09-06 Per Bothner <per@bothner.com>
- * SwitchState.java (getNumCases): New method.
- (switchValuePushed):` New method.
- (<init>): Move position-dependent logic to switchValuePushed.
- (addCase(int,CodeAttr,Label)): New method.
- (addDefault(CodeAttr,Label)): New method.
- (addCase): Rename internal method to insertCase.
- * CodeAttr.java (startSwitch): New method.
- Fix a problem where dump creates fixups, which messes up disassembly.
- * CodeAttr.java (CodeAttr.java): If fixup_count is -1, skip fixups.
- (processFixups): Also skip if fixup_count is negative, not just zero.
- (disAssembleWithFixups, disAssemble): Treat negative
- fixup_count like zero.
- * ClassFileInput.java (readAttribute): Set fixup_count of new CodeAttr
- to -1.
- * Label.java (define): Don't fixupAdd if fixup_count is negative.
- 2008-07-16 Per Bothner <per@bothner.com>
- Various improvements in class file printing.
- * SignatureAttr.java: New class, extends Attribute.
- * Makefile.am: Update accordingly.
- * ClassFileInput.java (readAttribute): Recognize "Signature" attribute.
- * SourceFileAttr.java (print): Optionally index index.
- * MiscAttr.java (print): Print contents, in hex.
- * dump.java: Recognize -verbose/-verbose; only print constant pool
- contents and indexes when verbose is set.
- 2008-05-22 Per Bothner <per@bothner.com>
- * Type.java (javalangObjectType, javalangStringType, toStringType,
- javalangBooleanType, javalangThrowableType, javalangNumberType,
- javalangClassType): New names for existing static fields.
- (pointer_type, string_type, tostring_type, boolean_ctype,
- throwable_type, number_type, java_lang_Class_type): The old names
- kept as deprecated aliases.
- (objectTYpe): New synonym for javalangObjectType.
- 2008-05-21 Per Bothner <per@bothner.com>
- * Type.java (byteType, shortType, intType, longType, floatType,
- doubleType, booleanType, charType, voidType): New names for
- existing static fields.
- (byte_type, short_type, int_type, long_type, float_type,
- double_type, boolean_type, char_type, void_type): The old names,
- kept as deprecated aliases.
- 2008-05-18 Per Bothner <per@bothner.com>
- * ClassType.java: Add constants and methods to tweak class file
- version numbers more cleanly.
- (setClassFileVersion(int), getClassfileVersion): New methods.
- (JDK_1_1_VERSION, JDK_1_2_VERSION, JDK_1_3_VERSION, JDK_1_4_VERSION,
- JDK_1_5_VERSION, JDK_1_6_VERSION, JDK_1_7_VERSION): New constants.
- 2008-05-10 Per Bothner <per@bothner.com>
- * ObjectType.java (isExisting): Generalize for ArrayType and classes
- that have a different implementation-type.
- Immediate impetus is handling tostring_type.
- * ArrayClassLoader.java (addClass(ClassType)): Defer mapping to Class
- until loadClass, because it could be a class in a module we have't
- compiled yet.
- (loadClass): Do deferred handing of ClassType.
- 2008-05-04 Per Bothner <per@bothner.com>
- * ClassType.java (getSimpleName): Fixed two bugs - wrong PreProcess
- macro; a comment that would confuse PreProcess. Fixes bug reported by
- Leonardo Valeri Manera <l.valerimanera@gmail.com>.
- * ClassType.java (doFixups): Fix thinko.
- * InnerClassesAttr.java (addClass): Fix thinko.
- (print): Fix buglets.
- 2008-05-03 Per Bothner <per@bothner.com>
- Better support for InnerClasses attributes.
- * CpoolClass.java (clas): New ObjectType field.
- (getClassType): Use or set clas field.
- (getClassName): New convenience method.
- * ClassType.java (getSimpleName, addMemberClass, getDeclaredClass,
- addMemberClasses): New methods.
- (addEnclosingMember): Make non-public.
- (firstInnerClass, nextInnerClass): New fields.
- (doFixUps): Add InnerClasses entries as required by JVM spec.
- * InnerClassesAttr.java (getFirstInnerClasses): New static method.
- (addClass): New method.
- (assignConstant): Now just a stub, since addClass does the work.
- (print): Various updates.
- * ObjectType.java (ADD_MEMBERCLASSES_DONE): New constant.
- * EnclosingMethodAttr.java (getFirstEnclosingMethod): New method.
- (assignConstants): Re-write.
- * ConstantPool.java (addClass(ObjectType)): Remember clas field.
- (addmethodRef, addFieldRef): Use addClass(ObjectType).
- (getForcedClass): New method.
- * CodeAttr.java (emitPushClass(String)): Remove no-longer-needed method.
- 2008-05-02 Per Bothner <per@bothner.com>
- * StackMapTableAttr.java (print_verification_type): Use named constant.
- 2008-04-28 Per Bothner <per@bothner.com>
- * StackMapTableAttr.java: New class, extends Attribute.
- * Makefile.am: Update accordingly.
- * ClassFileInput.java (readAttribute): Recognize StackMapTable.
- * Type.java (printSignature): New method.
- * CpoolClass.java (print): Use Type.printSignature for array types.
- * CodeAttr.java (emitPushNull): Push nullType, rather than pointer_type.
- 2008-04-27 Per Bothner <per@bothner.com>
- * ClassType.java (addMethods): Use addMethod(java.lang.reflect.Method)
- and addMethod(java.lang.reflect.Constructo).
- 2008-04-26 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitPushClass(ObjectType)): New method.
- * CodeAttr.java (emitCheckcast): Generalize to allow ObjectType.
- * SwitchState.java (addCase): Use unsigned shift to avoid
- potential overflow error in binary search.
- 2008-04-24 Per Bothner <per@bothner.com>
- * CodeAttr.java (processFixups): Drop redundant line number entries.
- 2008-04-08 Elliott Hughes <enh@jessies.org>
- Per Bothner <per@bothner.com>
- * package.html: Add example, plus sme other tweaks.
- * dump.java: Add more javadoc.
- 2008-04-08 Per Bothner <per@bothner.com>
- * Access.java: Various new constants. Explicit support for
- acess flags in InnerClasses attribute.
- * InnerClassesAttr.java (print): Pass Access.INNERCLASS_CONTEXT.
- * ClassType.java: Now also implement Member.
- (getStaticFlag): New method, needed to implement Member.
- (enclosingMember): New field.
- (getDeclaringClass, getEnclosingMember, setEnclosingMember,
- addEnclosingMember, addMethod, addMode): New methods.
- * ObjectType.java (ADD_ENCLOSING_DONE): Add flag.
- * Access.java (CLASS_CONTEXT, INNERCLASS_CONTEXT, FIELD_CONTEXT,
- METHOD_CONTEXT, INNERCLASS_MODIFIERS): New constants.
- 2008-03-01 Per Bothner <per@bothner.com>
- * EnclosingMethodAttr.java: New extends, extends Attribute.
- * Makefile.am: Update accordingly.
- * ClassFileInput.java (readAttribute): Recognize EnclosingMethod
- attribute.
- 2008-02-28 Per Bothner <per@bothner.com>
- * ClassTypeWriter.java (printOptionalIndex): Print '#' first.
- 2007-11-04 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java: Revert following the Java2 delegation model.
- Give the current ClassLoader priority over ancestor ClassLoaders.
- (loadClass): New methods.
- (findClass): Remove method.
- 2007-11-02 Per Bothner <per@bothner.com>
- * ObjectType.java (getField, getMethod, getMethods): New methods.
- * PrimType.java (compare): If other is non-ClassType non-ArrayType
- defer to other (perhaps a LangObjType).
- 2007-04-01 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java (getContextPackage): New static method.
- 2007-03-13 Per Bothner <per@bothner.com>
- * ClassType.java (access_flags): Make non-public.
- (addModifiers): New method.
- 2007-02-08 Per Bothner <per@bothner.com>
- * ArrayType.java: Implement Externalizable.
- (writeExternal, readExternal, readResolve): New methods.
- * ArrayType.java (getReflectClass): New method.
- Use element's ClassLoader.
- * Type.java: Implement java.lang.reflect.Type if JAVA5.
- 2007-01-20 Per Bothner <per@bothner.com>
- * ObjectType.java (getContextClass): Fix so PreProcess doesn't break.
- 2007-01-19 Per Bothner <per@bothner.com>
- * ObjectType.java (thisClassLoader): New field.
- (getContextClass): New static method.
- (getReflectClass): Use getContextClass.
- 2007-01-14 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java: Change to use Java 1.2 delegation model.
- I.e. implement findClass rather than loadClass if JAVA2 is enabled.
- (<init>): New constructor, to pass in parent ClassLoader.
- 2007-01-02 Per Bothner <per@bothner.com>
- * Method.java (makeCloneMethod): New method.
- * ObjectType.java (getMethods): New method, "moved up" from ClassType.
- * ArrayType.java (getMethods): New method.
- * Type.java (clone_method): New static Method field.
- 2006-12-05 Per Bothner <per@bothner.com>
- * ClassType.java (setInterface): Also set/clear Access.ABSTRACT.
- * ClassType.java (compare): tostring_type is less specific than Object.
- * Method.java (types): Add generic parameters if JAVA5.
- * ZipLoader.java (loadedClasses): Likewise.
- * Type.java (mapClassToType, mapNameToType): Likewise.
- (lookupType, getType, registerTypeForClass, make, <clinit>):
- Update, add synchronization.
- * ClassType.java (readResolve): Likewise.
- * ObjectType.java: Suppress warning.
- 2006-11-25 Per Bothner <per@bothner.com>
- * PrimType.java (compare): Add some more special cases.
- 2006-11-22 Per Bothner <per@bothner.com>
- * CodeAttr.java (calculateSplit): Make static.
- 2006-11-20 Per Bothner <per@bothner.com>
- * Variable.java (dead): Make public.
- * CodeAttr.java (emitWithCleanupStart): Use emitTryStart.
- (emitWithCleanupCatch): Need to save and then clear stack_types.
- (emitWithCleanupDone): Restore stack_types.
- * TryState.java (savedTypes): New field.
- 2006-11-18 Per Bothner <per@bothner.com>
- * ObjectType.java: Share some code between JAVA2 and non-JAVA2 case.
- * Type.java (getSizeInWords): New method.
- * Variable.java (reserveLocal): Use getSizeInWords.
- 2006-11-15 Per Bothner <per@bothner.com>
- * ObjectType.java (isInstance): New method - handle nullType.
- 2006-11-07 Per Bothner <per@bothner.com>
- * CodeAttr.java (instructionLineMode): New static option field.
- (assignConstants): Handle instructionLineMode.
- 2006-10-31 Per Bothner <per@bothner.com>
- * ClassType.java (compare): Compare wapped always if not ClassType.
- For example for XDataType. Also a simplification.
- * Type.java (mapClassToType): Use WeakHashMap if JAVA2.
- 2006-09-11 Per Bothner <per@bothner.com>
- * SourceDebugExtAttr.java: Remove unused local variable.
- 2006-06-12 Per Bothner <per@bothner.com>
- * ClassType.java (isSubclass): New method.
- 2006-05-30 Per Bothner <per@bothner.com>
- * ClassType.java (classfileFormatVersion): New field.
- (major_version, minor_version): Remove constants.
- (getClassfileMajorVersion, getClassfileMinorVersion.
- setClassfileVersion, setClassfileVersionJava5): New me thods.
- (writeToStream): Write major/minor version values instead of constants
- * ClassFileInput.java (readHeader): Read and remember version numbers.
- 2006-05-23 Per Bothner <per@bothner.com>
- * ClassFileInput.java: Remove unused local variables.
- * ClassType.java: Likewise.
- * ListCodeSize.java: Likewise.
- * SourceDebugExtAttr.java: Likewise.
- 2006-05-20 Per Bothner <per@bothner.com>
- * Field.java (setConstantValue): Allocate constant pool if needed.
- 2006-04-10 Per Bothner <per@bothner.com>
- * ClassType.java (getField): Also check super-interfaces.
- 2006-03-07 Per Bothner <per@bothner.com>
- * Type.java (<init>(Type)): New copy constructor.
- 2006-03-01 Per Bothner <per@bothner.com>
- * Method.java (cleanupAfterCompilation): New method.
- * ClassType.java (cleanupAfterCompilation): New method.
- 2006-02-19 thomas kirk <tk@research.att.com>
- Per Bothner <per@bothner.com>
- * ZipLoader.java (loadAllClasses): Return first class
- in archive (i.e. the main class).
- 2006-02-19 Per Bothner <per@bothner.com>
- * Member.java: New interface.
- * Makefile.am: Update coordingly.
- * Field.java: Implements Member.
- * Method.java: Implement Member.
- 2006-02-01 Per Bothner <per@bothner.com>
- * ListCodeSize.java: New utility application class.
- * Makefile.am: Update accordingly.
- * Method.java (listParameters): New method.
- (toString): Use listParameters.
- * ArrayClassLoader.java: Remove unneeded import.
- 2006-01-24 Per Bothner <per@bothner.com>
- * ClassType.java (getDeclaredMethod): If arg_types[i] is null,
- match any parameter type.
- (getMethod): Don't check that method is public; let caller
- check that method is accessible.
- 2005-12-31 Per Bothner <per@bothner.com>
- * ObjectType.java (getReflectClass): Un-tab-ify conditional text.
- 2005-12-11 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java (context): New field.
- (getResourceContext, setResourceContext, findResource): New methods.
- 2005-11-23 Per Bothner <per@bothner.com>
- * ClassType.java (getOuterLinkType): New method.
- (setOuterLink): Change to return link Field instead of void.
- 2005-11-22 Per Bothner <per@bothner.com>
- * ClassType.java (getField): New method, takes mask.
- (getField): Old method now just calls new method.
- (addFields): Now add all fields, not just public|protected ones.
- (addmethods): Likewise.
- (getMethod): Only match public methods.
- * ClassType.java (addMethod): Reimplement using shared code.
- 2005-11-21 Per Bothner <per@bothner.com>
- * ObjectType.java (HAS_OUTER_LINK): New flag,
- * ClassType.java (hasOuterLink, setOuterLink): New methods.
- (addField): Set HAS_OUTER_LINK if "this$0" field seen.
- (getDeclaredMethod): Adjust if hasOuterLink().
- * Method.java (signature): Make non-private so ClassType can clear it.
- 2005-11-16 Per Bothner <per@bothner.com>
- * ClassType.java (getPackageName): Fix thinko.
- 2005-11-14 Per Bothner <per@bothner.com>
- * ClassType.java (getMethod): Also search implemented interfaces.
- 2005-10-27 Per Bothner <per@bothner.com>
- * ClassType.java (getSuperclass): Only getReflectClass() if isExisting.
- 2005-10-16 Per Bothner <per@bothner.com>
- * ClassType.java (isAccessible): Fix thinko.
- * CodeAttr.java (castNeeded): New static hekp method that handles
- ArrayTypes as well as ClassTypes.
- (emitCheckcast): Make use of castNeeded.
- 2005-09-25 Per Bothner <per@bothner.com>
- * Type.java (make): Remove redundant statement.
- 2005-07-28 Dean Ferreyra <dean@octw.com>
- * ClassType.java (getInterfaces): Add missing needed synchornized.
- 2005-05-30 Per Bothner <per@bothner.com>
- * Variable.java (isArtificial, setArtificial): Remove unused methods.
- (ARTIFICIAL_FLAG): Remove unused constant.
- 2005-05-16 Per Bothner <per@bothner.com>
- * CodeAttr.java (pushScope): All our own enterScope, so setStartPC is
- called, and the start label is allocated,
- * ClassFileInput.java (readAttribute): Minor optmization.
- 2005-05-10 Per Bothner <per@bothner.com>
- * ClassType.java (getMethod): New method.
- 2005-04-18 Per Bothner <per@bothner.com>
- * ObjectType.java (getReflectClass): Update PreProcess names.
- 2005-04-17 Per Bothner <per@bothner.com>
- * ObjectType.java (getReflectClass): Do initCause on wrapper
- RuntimeException, if Java4, which is now the default.
- 2005-04-03 Per Bothner <per@bothner.com>
- * Method.java: Remove bogus @return in javadoc comment.
- * Variable.java: Likewise.
- 2005-03-22 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitTryStart): Create new TryState *after* we
- save any stack values, so saves come before exception range start.
- 2005-03-02 Per Bothner <per@bothner.com>
- * Field.java (setConstantValue): Handle boolean and char fields.
- 2005-02-25 Per Bothner <per@bothner.com>
- * CodeAttr.java (pushScope): Don't do a getLabel - it's redundant,
- since enterScope also does it, via setStartPC.
- 2005-01-30 Per Bothner <per@bothner.com>
- * Access.java (toString): Fix typo.
- * InnerClassesAttr.java (print): Specificy class access flags.
- 2005-01-28 Per Bothner <per@bothner.com>
- * Type.java (java_lang_Class_type): New static field.
- * CodeAttr.java (emitPushClass): New method.
- 2005-01-19 Per Bothner <per@bothner.com>
- * Access.java (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS):
- New bit-mask constants.
- (toString): Mask off inappropriate flags.
- * ClassTypeWriter.java: Make some methods public.
- 2005-01-15 Per Bothner <per@bothner.com>
- * Access.java (BRIDGE, VARARGS, STRICT, SYNTHETIC, ANNOTATION):
- Add new JDK 1.4 and 1.5 modifiers.
- (toString(int,char)): Update for new flags.
- * Type.java (setName): New protected method.
- * ObjectType.java (<init>(String)): Make public. It makes more sense
- for "funny" types like NodeType to be ObjectType but not ClassType.
- To be used for gnu.NodeType.
- * ClassType.java (setName): Stylistic improvement.
- 2005-01-09 Per Bothner <per@bothner.com>
- * ClassType.java (writeExternal): Simplify. Non-existing classes
- are now handled specialy in LitTable.
- 2005-01-05 Per Bothner <per@bothner.com>
- * Type.java (array_type): New field.
- * ArrayType.java (make(Type)): Use array_type of argument.
- (make(String)): New non-public static method.
- * Type.java (getType): Use ArrayType.make(String).
- (signatureToType): Use ArrayType.make(Type).
- * Type.java (hashCode): New method.
- * ClassType.java (getDeclaredMethod): Compare argument types
- by comparing signatures, not only by identity.
- 2005-01-02 Per Bothner <per@bothner.com>
- * ObjectType.java: Change "select" (preprocessor) syntax.
- 2004-12-30 Per Bothner <per@bothner.com>
- * ClassFileInput.java (readAttribute): Link in scopes read from
- LocalVariableTable table into Scope tree structure.
- * Variable.java (shouldEmit): Trivial performance fix
- 2004-12-29 Per Bothner <per@bothner.com>
- * Type.java (setReflectClass): New method.
- 2004-12-25 Per Bothner <per@bothner.com>
- * SourceDebugExtAttr.java (addFile): Clear curLineIndex "cache".
- 2004-12-24 Per Bothner <per@bothner.com>
- * Method.java (compile_linenumber): Remove no-longer used method.
- * ClassType.java (setSourceFile): Fix off-by-one error.
- * ClassType.java (setSourceFile): Don't include directories in
- SourceFile attribute, following class file spec.
- 2004-12-23 Per Bothner <per@bothner.com>
- * ClassFileInput.java (readAttribute): Fix NullPointerException if
- end unset in parameter_scope, when reading "LocalVariableTable".
- * SourceDebugExtAttr.java: New class, extends Attribute.
- * Makefile.am: Update accordingly.
- * ClassFileInput.java (readAttribute): Handle "SourceDebugExtension".
- * ClassType.java (sourceDbgExt): New field.
- (setStratum): New method, allocates SourceDebugExtAttr.
- (setSourceFile): Add new file to sourceDbgExt.
- * CodeAttr.java (sourceDbgExt): New field.
- (putLineNumber): If sourceDbgExt, have it do fixLine.
- (putLineNumber): New overloaded method.
- * Method.java (initCode): Copy sourceDbgExt from classfile.
- * SourceFileAttr.java (fixSourceFile): New static helper method.
- (setSourceFile): Use fixSourceFile here, and in SourceDebugExtAttr.
- 2004-11-22 Per Bothner <per@bothner.com>
- * Type.java (tostring_type, pointer_type, ...): Make final.
- * ClassType.java (writeExternal): Better error message.
- 2004-08-05 Per Bothner <per@bothner.com>
- * PrimType.java (emitIsInstance): New method.
- 2004-08-03 Per Bothner <per@bothner.com>
- * Variable.java (shouldEmit): Require that scope's start and end
- labels are non-null. Minor optimization tweaking.
- 2004-07-31 Per Bothner <per@bothner.com>
- * CodeAttr.java (label): Remove field.
- (FIXUP_NONE, FIXUP_DEFINE, FIXUP_SWITCH, FIXUP_CASE, FIXUP_GOTO,
- FIXUP_JSR, FIXUP_TRANFER, FIXUP_TRANFER2, FIXUP_DELETE3, FIXUP_MOVE,
- FIXUP_MOVE_TO_END, FIXUP_TRY, FIXUP_CATCH, FIXUP_LINE_PC,
- FIXUP_LINE_NUMBER): New constants - fixup kinds.
- (processFixups): New big method - does what it says.
- (finalize_labels): Removed method.
- (invert_opcode): New method.
- (reserve): Don't need to check for "spring" to long jump.
- (putLineNumber, emitTransfer, emitGoto.emitJsr): Use new fixup
- mechanism.
- (addhandler): Likewise. Change parameters to take labels.
- (emitGoto): Remove 2-parameter version.
- (emitTryStart, emitTryEnd): Use no-argument Label constructor.
- (fragments, fragmentStack): Remove fields.
- (beginFragment/endFragmenrt): Use new fixup mechanism.
- (assignConstants): Don't need to handle fragments. Do processFixups.
- (readPC): Remove field, and places that access it.
- * Label.java (relocate_fixups, relocate_wide, emit_spring, emit,
- emit_wide, add_fixup, add_wide_fixup, hasFixups): Remove methods.
- (next, fixups, wide_fixups, spring_position): Remove fields.
- (first_fixup): New field.
- (<init>): New simplified constructors.
- (define): Change to note fixup_count and fixupAdd.
- * Method.java (reachableHere): Invoke CodeAttr's method.
- * CodeAttr.java (unreachable_here): Make private.
- * SwitchState.java: Use fixupChain to avoid goto to switch.
- Also padding is now deferred to processFixups time.
- * TryState.java (start_pc, end_pc): Replace int fields by ...
- (start_try, end_try): ... new Label fields.
- * CodeFragment.java: Removed - replaced by new fragment mechanism.
- * Makefile.am: Remove CodeFragment.java.
- 2004-07-31 Per Bothner <per@bothner.com>
- * Scope.java (start, end): New fields
- (start_pc, end_pc): Remove fields - use start and end fields instead.
- (<init>): New constructor tkaing Labels.
- (addVariable, addVariableAfter): Set scope of Variable.
- Don't set start_pc - set implicitly via scope.
- (setStartPC): Change to take a CodeAttr instead of a PC.
- Set the start label from code, instead of setting start_pc fields.
- * Variable.java (shouldEmit): Moved here from LocalVarsAttr.java.
- (scope): New field.
- (start_pc, end_pc): Remove fields - get them via scope instead.
- (freeLocal): Don't set end_pc - set implicitly via scope.
- * Label.java (<init>): New constructor takes PC.
- * LocalVarsAttr.java (shouldEmit): Move to Variable.
- (write, print): Update since start_pc and end_pc replaced by Labels.
- * CodeAttr.java (getLabel): New method.
- (enterScope): Use updated setStartPc.
- (pushScope, popScope): Use getLabel instead of explicit start_pc.
- (emitTailCall): Use emitGoto instead of "inlining" it.
- * ClassFileInput.java (readAttribute): Update handling of
- LocalVariableTable since PC ranges are now indirected through Labels.
- * Variable.java (LIVE_FLAG): New constant.
- (dead): Use LIVE_FLAG.
- (reserveLocal): Set LIVE_FLAG.
- (freeLocal): Clean LIVE_FLAG.
- 2004-07-20 Per Bothner <per@bothner.com>
- * CodeFragment.java: Remove useless import statements.
- * IfState.java: Likewise.
- * Label.java: Likewise.
- * Location.java: Likewise.
- * PrimType.java: Likewise.
- * Scope.java: Likewise.
- * TryState.java: Likewise.
- * Type.java: Likewise.
- * Variable.java: Likewise.
- * ZipArchive.java: Likewise.
- * dump.java: Likewise.
- 2004-05-13 Per Bothner <per@bothner.com>
- * ClassType.java (getFields, getDeclaredMethods): Make synchronized.
- (getDeclaredField): Use getFields.
- (getDeclaredMethod [2 overloads]): Use getDeclaredMethods.
- Fixes Savannah bug #8817.
- 2004-02-20 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitTryEnd): Don't emitStore if ! reachableHere().
- Fixes bug reported by dominique.boucher@nuecho.com 2/20.
- 2004-02-19 Daniel Bonniot <Daniel.Bonniot@inria.fr>
- * ClassType.java (getPackageName): Use lastIndexOf, not indexOf.
- 2004-02-10 Per Bothner <per@bothner.com>
- * ClassType.java (isAccessible): New method.
- 2003-11-03 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitIfIntEqZero): New method.
- 2003-10-28 Per Bothner <per@bothner.com>
- * dump-main.cc: Belatedly remove unused file.
- 2003-10-09 Per Bothner <per@bothner.com>
- * ZipArchive.java: Remove all fields and non-static methods,
- leaving only main and usage/copy, which main uses.
- There is no point any more, given the existence of java.util.zip.
- (main): Implement 'q' command using ZipOutputStream and ZipEntry.
- * ZipMember.java: Remove file. No longer used.
- * Makefile.am: Update accordingly.
- 2003-09-30 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitWithCleanupStart, emitWithCleanupCatch,
- emitWithCleanupDone): New methods.
- 2003-09-24 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitTryStart): Clean up internal logic. Fix bug
- where testing for non-zero SP would never true at that point.
- 2003-07-16 Chris Dean <Chris.Dean@sokitomi.com>
- * PrimType.java (compare): Guard againt null otherName.
- 2003-06-18 Jim White <jim@pagesmiths.com>
- * Type.java (mapNameToType): Initialize statically.
- 2003-06-22 Per Bothner <per@bothner.com>
- * PrimType.java (emitCoerceToObject): Fix handling of boolean case.
- Fixes bug reported by Wen-Chun Ni <wcn@tbcommerce.com>.
- 2003-05-17 Per Bothner <per@bothner.com>
- * ClassType.java (getModifiers, getInterfaces): Only call
- getReflectClass if isExisting.
- 2003-05-13 Per Bothner <per@bothner.com>
- * Type.java: Make default constructor protected.
- 2003-04-29 Jim White <jim@pagesmiths.com>
- * ObjectType.java (getReflectClass): Move comment to separate line.
- Lined for Ant support.
- 2003-04-25 Per Bothner <per@bothner.com>
- * ObjectType.java (getReflectClass): Pass false to initialize argument
- of Class.forName - but only if Java2 is selected.
- 2003-04-21 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java: Rewrite to use a Hashtable.
- 2003-04-04 Per Bothner <per@bothner.com>
- * Access.java (toString(int,char)): New overloaded method.
- Allows printing 'super' instead of 'synchronized' for a class.
- * ClassTypeWriter.java printClassInfo, printFields, printMethods):
- Use new method.
- 2003-03-13 Per Bothner <per@bothner.com>
- * CodeAttr.java (getSP): New method.
- * CodeAttr.java (emitPushString): Don't do redundant pushType
- if we call emitPushNull.
- 2002-11-19 Daniel Bonniot <bonniot@users.sourceforge.net>
- * CodeAttr.java (emitSwap): Handle two word values.
- 2002-10-21 Daniel Bonniot <bonniot@users.sourceforge.net>
- * CodeAttr.java (doPendingFinalizers): Fix verification error
- when returning a value inside a try/finally.
- 2002-08-16 Per Bothner <per@bothner.com>
- * PrimType.java (compare): tostring_type is more general.
- * ArrayType.java (compare): Likewise.
- 2002-08-06 Per Bothner <per@bothner.com>
- * ObjectType.java (isExisting): New method.
- 2002-08-04 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitCheckcast): Check if already isSubclass.
- 2002-07-21 Per Bothner <per@bothner.com>
- * Field.java (toString): New method.
- 2002-06-13 Per Bothner <per@bothner.com>
- * ClassType.java (writeExternal): Fix typo in exception message.
- 2002-06-05 Per Bothner <per@bothner.com>
- * PrimType.java (emitCoerceToObject): New method.
- 2002-05-19 Per Bothner <per@bothner.com>
- * CodeAttr.java (doPendingFinalizers): New public method.
- (emitReturn): Call doPendingFinalizers.
- (getCurrentTry): New method.
- 2002-05-06 Per Bothner <per@bothner.com>
- * Method.java (toString): Use '.' before method name.
- 2002-04-19 Daniel Bonniot <bonniot@users.sourceforge.net>
- * ClassType.java (addMethods): Prevents addMethods to incorrectly list
- twice the methods of the class.
- 2002-04-18 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java: New default constructor.
- (addClass(Class), addClass(ClassType)): New overloaded methods.
- * ClassType.java (writeToArray): Handle IOException.
- * CodeAttr.java (emitInvoke): If method name is "<init>",
- do invokeSpecial.
- * CodeAttr.java (emitGotoIfCompare2): Support object eq/ne compares.
- (emitGotoIfEq, emitGotoIfNE): Re-implement using emitGotoIfCompare2.
- * Method.java (startCode): New convenience method.
- 2002-04-16 Phil Walker <phil_walker@hp.com>
- * InnerClassesAttr.java (write): Multiple index by 4.
- 2002-04-02 Daniel Bonniot <bonniot@users.sourceforge.net>
- * CodeAttr.java (emitShift): New method.
- (emitShl, emitShr, emitUshr): Handle a long first argument.
- 2002-03-07 Per Bothner <per@bothner.com>
- * Scope.java (preserved): New flag.
- (freeLocals) New method.
- * CodeAttr.java (popScpe): Use new freeLocals method.
- * LocalVarsAttr.java (preserveVariablesUpto): New method.
- * Scope.java (lookup): Make public.
- 2002-03-02 Per Bothner <per@bothner.com>
- * Makefile.am (dump): Remove rule for making executable.
- * README: Remove obsolete file.
- * CodeAttr.java (emitGotoIfCompare2): ALso allow ifeq and ifne.
- 2002-02-01 Per Bothner <per@bothner.com>
- * ClassType.java (sourcefile): Remove unused field.
- Reported by Daniel Bonniot <bonniot@users.sourceforge.net>.
- 2002-01-31 Per Bothner <per@bothner.com>
- * ClassType.java: Implement Externalizable.
- (writeExternal, readExternal, readResolve): New methods.
- 2002-01-21 Per Bothner <per@bothner.com>
- * CodeAttr.java (calculateSplit): New helper method.
- (emitPushString): Handle the case a String too long for CONSTANT_Utf8.
- 2002-01-07 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitPushPrimArray): New method.
- Replaces gnu.expr.LitTable.emitPrimArray.
- 2001-12-27 Daniel Bonniot <bonniot@users.sourceforge.net>
- * CodeAttr.java (various): Replace emitGoto(L, 168) by emitJsr(L).
- * CodeAttr.java (emitReturn): Jump to the finally blocks before return.
- 2001-12-24 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitPushString): Tolerate null String argument.
- * CodeAttr.java (emitThen): New method.
- * package.html: Remove "http:" from relative URLs.
- * Method.java (toString): Use getName of declaring class to avoid
- prefixing by "Class Type ". Fixes bug reported by Daniel Bonniot.
- 2001-11-23 Per Bothner <per@bothner.com>
- * ClassType.java (isSubclass): Handle other class an interface,
- (compare): Simplify, due to above change.
- * ClassType.java (isSubclass): Special test for tostring_type.
- (compare): Likewise.
- * ObjectType.java (coerceFromObject): Allow null when tostring_type.
- (emitCoerceFromObject): Emit code that tests input for null.
- 2001-11-21 Per Bothner <per@bothner.com>
- * ClassType.java (noClasses): New static field.
- (getInterfaces): Use getReflectClass().
- Use noClasses when there are no intefaces.
- (getMethods): Search interface also of super-classes.
- Fixes problem reported by Valtteri Vuorikoski.
- * ClassType.java (getMethods): Context is now a package name, rather
- than a ClassType. Fixes problem reported by Walter Pelissero, where
- Sun has a private java.lang.UnixProcess which we considered to be in
- the same package as java.lang.Object, which used to mean "any class",
- 2001-11-17 Per Bothner <per@bothner.com>
- * ClassType.java (getPackageName): New method.
- (getMethods): New overload uses Vector.
- * Type.java (make): Don't set interface flag here since it prevents
- future getModifiers calls from getting the reflectClass's modifiers.
- 2001-11-05 Per Bothner <per@bothner.com>
- * ArrayType.java (getImplementationType): New method
- * ClassType.java (compare): Handle case when both are interfaces.
- * Type.java (string_type): Is now a normal Java class.
- (tostring_type): New class; String that uses toString to convert.
- * ObjectType.java (coerceFromObject, emitCoerceFromObject): Check if
- this is new Type.tostring_type
- (getImplementationType): Map tostring_type to string_type.
- 2001-10-23 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitJsr): New method.
- 2001-09-20 Per Bothner <per@bothner.com>
- * PrimType.java (compare): All types are subtypes of Object.
- 2001-09-14 Per Bothner <per@bothner.com>
- * ObjectType.java (promote): Convert nullType to pointer_type;
- (getImplementationType): Likewise.
- 2001-09-12 Per Bothner <per@bothner.com>
- * Type.java (neverReturnsType): Use different constructor, to
- avoid it being registered in place of void_type.
- 2001-08-23 Per Bothner <per@bothner.com>
- * Access.java (SUPER): New constant.
- * CodeAttr.java (emitInvoke): Was testing isInterface on wrong class.
- * CodeAttr.java (emitElse): Fix bug (null pointer access)
- reported by Felix S Klock II <pnkfelix@MIT.EDU>.
- * Type.java (signatureToPrimitive): Change return type.
- * Type.java (getImplementationType): New method.
- 2001-08-15 Per Bothner <per@bothner.com>
- * ClassType.java (getSuperclass): Don't call getReflectClass of
- this is an interface or is Object.
- * ClassType.java (setInterface): New method.
- * ClassType.java (getMethods(Filter,int)): New method overloads.
- (countMethods): New method.
-
- * Method.java (isAbstract): New method.
- 2001-08-07 Brian Jones <cbj@gnu.org>
- * LineNumbersAttr.java (getLineCount, getLineNumberTable): New methods.
- 2001-07-16 Per Bothner <per@bothner.com>
- * PrimType.java (booleanValue): Make static.
- * Scope.java (find_var): Renamed to ...
- (getvariable): ... new name.
- * CodeAttr.java (getArg): Update accordingly.
- (getCurrentScope): New method.
- * CodeAttr.java (getCurrentScope): New method.
- 2001-04-23 Per Bothner <per@bothner.com>
- * CodeFragment.java (linenumbers): New field.
- (emit): Also emit linenumbers.
- * CodeAttr.java (endFragment): Save linenumbers in fragment.
- 2001-04-07 Thomas Kirk <tk@research.att.com>
- * ZipLoader.java (loadAllClasses): New method to force load
- of all classes from the zip archive, close archive.
- (close): New Method to prevent leaking open ZipFiles when
- archive is not completely read.
- (loadClass): Reopen the zip file if it has been closed prematurely.
- * ZipLoader.java (zipname): New field to hold name of zipfile
- in case it must be reopened.
- 2001-03-29 Per Bothner <per@bothner.com>
- * CodeAttr.java (emitTryStart): If the stack needs to be saved,
- do so before setting the TryState's start_pc.
- Fixes bug reported by Bob Bane <bane@gst.com>.
- 2001-03-08 Per Bothner <per@bothner.com>
- * ClassType.java (getSuperclass): Call getReflectClass if needed.
- * ClassType.java (implementsInterface): New method.
- (compare): Use implementsInterface to compare interfaces.
- 2001-02-26 Per Bothner <per@bothner.com>
- * ClassType.java (doFixups): Move method fixups to Method, CodeAttr.
- * CodeAttr.java (assignConstants): Handle CodeFragments, labels here.
- * Method.java (assign_constants): REname to assignConstants.
- 2000-11-21 Bruce R. Lewis <brlewis@users.sourceforge.net>
- * ArrayClassLoader.java: Handle custom classloader by using
- Class.forName() instead of findSystemClass().
- * ZipLoader.java: Likewise.
- 2000-10-09 Per Bothner <per@bothner.com>
- * ObjectType.java (setExisting): New method.
- * Type.java (getType): Don't try to load reflectClass yet.
- * ObjectType.java (getInternalName): New method.
- (getNameOrSignature): Removed, replaced by getInternalName.
- (getReflectClass): Update to use getInternalName.
- * ArrayType.java (getInternalName): New method, replaces ...
- (getNameOrSignature): Removed, replaced by getInternalName.
- * ConstantPool.java (addClass): Update to use getInternalName.
- * ObjectType.java (coerceFromObject): Minor optimization.
- 2000-08-23 Daniel Bonniot <bonniot@cma.ensmp.fr>
- * CodeAttr.java (emitDup, emitDupX): New methods.
- 2000-08-16 Per Bothner <per@bothner.com>
- * CodeAttr.java (addParamLocals): New method.
- * Method.java (init_param_slots): Use CodeAttr's new addParamLocals.
- * Type.java (make): If an existing type has same name but different
- reflectClass (i.e. different ClassLoader), treat it as different type.
- 2000-06-10 Per Bothner <per@bothner.com>
- * Type.java (nullType): New static field.
- * ObjectType.java: No longer abstract - used for nullType.
- (ObjectType): New constructor.
- (getNameOrSignature): Moved here from ClassType.
- (compare): New method - handle nullType.
- * ArrayType.java (compare): Handle nullType.
- * ClassType.java (compare): Handle nullType.
- (getNameOrSignature): Now inherited.
- 2000-06-09 Per Bothner <per@bothner.com>
- * Field.java (setConstantValue): New method.
- 2000-05-22 Per Bothner <per@bothner.com>
- * Filter.java: New interface.
- * Makefile.am (java_JAVA): Add Filter.java.
- * ClassType.java (addMethod): Use existing method even if it
- has extra access flags.
- (getDeclaredMethods, getMethods): New methods.
- * Type.java (make(Class)): If a regular class, set EXISTING_CLASS.
- Bind reflectClass, but avoid calling Class.forName (runs <clinit>).
- * Type.java (isSubType): Make final. Just call compare.
- * ArrayType.java (compare): To compare AraryTypes, compare elements.
- * PrimType.java (compare): Implement Java char->number widening rules.
- 2000-05-09 Per Bothner <per@bothner.com>
- * Type.java (getType): Class Class.forName to get reflectClass;
- only set EXISTING_CLASS if it succeeds.
- * Scope.java (addVariable): New different Variable constructor.
- * LocalVarsAttr.java (shouldEmit): New method. Return false if
- start_pc/end_pc are invalid.
- (getCount, write): Use shouldEmit.
- 2000-04-21 Per Bothner <per@bothner.com>
- * PrimType.java: New "copying" constructor.
- 2000-04-12 Per Bothner <per@bothner.com>
- * ConstantValueAttr.java: New class, extends Attribute,
- * Makefile.am (java_JAVA): Added ConstantValueAttr.java.
- * ClassFileInput.java (readAttribute): Handle ConstantValue attribute.
- * ClassTypeWriter.java (printQuotedString): New method.
- * CpoolUtf8.java (print): Use ClassTypeWriter's printQuotedString.
- * Field.java (constant_value_index): Remove field.
- (write): Replace constant_value_index usage by attribute handling.
- (assign_constants): Likewise.
- * Field.java (sourceName, rfield): New fields.
- (getReflectField, setSourceName, getSourceName, searcField): New.
- * ClassType.java (writeToStream): Set ADD_FIELDS_DONE|ADD_METHODS_DONE.
- * Field.java (getModifiers): New method.
- * ClassType.java (writeToFile): Use File.separatorChar.
- 2000-03-05 Per Bothner <per@bothner.com>
- * ZipLoader.java (loadClass): Use DataInputStream.readFully to force
- all of a class member to be read. Fixes VerifyError under JDK1.2.
- Throw ClassNotFoundException rather than Error.
- 2000-03-02 Per Bothner <per@bothner.com>
- * Type.java (neverReturnsType): New static final Type.
- (lowestCommonSuperType): Handle neverReturnsType.
- 2000-03-02 Daniel Bonniot <d.bonniot@mail.dotcom.fr>
- * CodeAttr.java (words): New private method.
- (emitInvokeMethod): Use new words method.
- * CodeAttr.java: Update two error messages.
- 2000-02-27 Per Bothner <per@bothner.com>
- Various tweaks for better javadoc processing.
- * overview.html: Renamed to package.html.
- 2000-02-25 Daniel Bonniot <d.bonniot@mail.dotcom.fr>
- * ClassType.java (getInterfaces): Fix thinko.
- 2000-02-12 Per Bothner <per@bothner.com>
- * ClassType.java (addInterface): New method.
- 2000-02-10 Per Bothner <per@bothner.com>
- * Type.java (mapNameToType): New static replaces ClassType.classTable.
- (lookupType, getType): New static methods.
- (make): Use ArrayType.make.
- * ArrayType.java (make): New static method.
- * ClassType.java (classTable): Replaced by Type,mapNameToType.
- (make): Use Type.getType.
- (getDeclaredMethod(String,int)): New overloaded method.
- (addMethods): Also add constructore.
- 2000-02-01 Per Bothner <per@bothner.com>
- * ClassType.java (getInterfaces): Style tweaks.
- * IfState.java (<init>): New constructor.
- * CodeAttr.java (emitIfThen): Use new IfState constructor to avoid
- that doesn't set end_label (which may be unneeded).
- (emitElse, emitFi): Only set end_label if defined.
- 2000-01-19 Daniel Bonniot <d.bonniot@mail.dotcom.fr>
- * CodeAttr.java (emitConvert): Ensured that conversion from a
- primitive type to itself always succeeds, and that no code is
- generated.
- * Type.java (lowestCommonSuperType): New method.
- * Type.java (make): Set INTERFACE flag if appropriate.
- * gnu/bytecode/ClassType.java (getInterfaces): Get from reflectClass.
- 2000-01-22 Per Bothner <per@bothner.com>
- * ClassType.java (addField): Remove redundant setName, type setting.
- (getDeclaredMethod): Minor optimization.
- * CodeAttr.java (emitInvoke): New method.
- (adjusrTypedOp, emitBinop, emitAdd, emitSub): New method overloads.
- (emitIfIntLEqZero): New method.
- (emitElse, emitFi): Add (fragile) support for stack skrinking.
- * IfState.java (stack_growth): New field.
- * LocalVarsAttr.java (enterScope): Tweak error message.
- * Method.java (toString): Emit types in Java-source form, instead
- of using getSignature.
- * Type.java (int_type etc): Change type from Type to Primtype.
- 1999-12-24 Per Bothner <per@bothner.com>
- * Variable.java: New constructors.
- (toString): New method.
- * Scope.java (setStartPC): New method.
- (addVariable): If code is null, don't call allocateLocal.
- * LocalVarsAttr.java (enterScope) Don't set start_pc of variables.
- * CodeAttr.java (locals): Make field public.
- (enterScope): Call scope.setStartPC.
- 1999-12-16 Luke Gorrie <luke@vegetable.org>
- * ClassType.java (getSuperclass): Check for null superclass.
- 1999-12-16 Per Bothner <per@bothner.com>
- * ClassType.java (isInterface): Use getModifiers().
- * ClassType.java (getFields): Call addFields if an existing class.
- 1999-12-02 Per Bothner <per@bothner.com>
- * Attribute.java (addToFrontOf): New method.
- * CodeAttr.java, ExceptionsAttr.java, InnerClassesAttr.java,
- LineNumbersAttr.java, LocalVarsAttr.java, SourceFileAttr.java
- (<init>): Use new addToFrontOf method.
- * LocalVarsAttr.java (isEmpty): New method.
- (<init>): New (overloaded) constructor.
- * CodeAttr.java (pushScope): Use new LocalVarsAttr constructor.
- (assignConstants): If we have something to emit in a (non-empty)
- LocalVars attribute, link it into the attribute list.
- 1999-11-18 Per Bothner <per@bothner.com>
- * ClassType.java (getModifiers): Update access_flags after calling
- reflectClass.getModifiers().
- * ConstantPool.java (addMethodRef): Use getModifiers() to check
- if class is interface. (This calls getReflectClass if needed.)
- * ObjectType.java (getReflectClass): If Class.forName fails, and
- EXISTING_CLASS flag is set, throw an exception.
- 1999-11-15 Per Bothner <per@bothner.com>
- * ObjectType.java (flags): New variable.
- (ADD_FIELDS_DONE, ADD_METHODS_DONE, EXISTING_CLASS): New constants.
- * ClassType.java (addFields): New method.
- (getDeclaredField): New method. May call addFields.
- (getDeclaredMethod, getMethod): New methods. May call addMethods.
- 1999-11-03 Per Bothner <per@bothner.com>
- * Type.java (isSubtype): Use new isSubclass method from ClassType.
- (compare): New virtual method.
- (swappedCompareResult): New static method.
- * ClassType (compare, isSubclass, isInterface): New methods.
- * PrimType.java (compare): New virtual method.
- (compare): New static method.
- * ArrayType.java (compare): New virtual method.
- 1999-10-25 Per Bothner <per@bothner.com>
- * ObjectType.java (coerceFromObject): Allow null as input.
- 1999-08-30 Geoff Berry <gcb@gnu.org>
- * CodeAttr.java (emitPushDouble, emitPushFloat): Handle
- pushing of -0.0.
- 1999-09-08 Per Bothner <per@bothner.com>
- * Method.java (write): Remove unused Variable var.
- 1999-09-02 Per Bothner <per@bothner.com>
- * CodeFragment.java (unreachable_save): New feld.
- * CodeAttr.java (various places): Use setUnreachable().
- (beginFragment): Save value of unreachable_here.
- (endFragment): Restore it.
- * Variable.java (setFlag): New private convenience method.
- (setSimple, setParameter, serArtificial): Use it.
- 1999-08-26 Per Bothner <per@bothner.com>
- * ClassType.java (getSuperclass): If superClass unset, but
- reflectClass is set, call java.lang.Class.getSuperclass.
- 1999-08-22 Per Bothner <per@bothner.com>
- * ClassType.java (addMethods, getMatchingMethods): New methods.
- * CodeAttr.java (setReachable, setUnreachable): New methods.
- (emitNewArray): Use anewarray even if element type is ArrayType.
- * Method.java (toString): Make safe even if arg_types is null.
- * ZipArchive.java (append): Remove version using byte[] name.
- 1999-08-08 Per Bothner <per@bothner.com>
- * ArrayClassLoader.java (addClass): New method.
- 1999-08-06 Per Bothner <per@bothner.com>
- * CodeFragment.java: New class.
- * ClassType.java (doFixups): Emit any pending fragments.
- * CodeAttr.java (getPC, isInTry): New methods.
- (beginFragment, endFragment): New methods.
- 1999-07-15 Per Bothner <per@bothner.com>
- * CodeAttr.java (popType): Use Type.isVoid method.
- * Type.java (isSubtype): Add more logic for testing superclasses if
- reflctive classes not available.
- 1999-04-25 Per Bothner <bothner@Magnus.Cygnus.COM>
- * Variable.java (offset): Make non-public.
- 1999-04-22 Per Bothner <bothner@Magnus.Cygnus.COM>
- * ZipMember.java: Inherit from java.util.zip.ZipEntry.
- Various related changes.
- * ZipArchive.java: Add casts and other changes from ZipMember changes.
- (copy - two overload variants): New methods.
- (doit): Removed.
- (main): Use java.util.zip classes (except for 'q' command).
- 1999-04-17 Per Bothner <bothner@Magnus.Cygnus.COM>
- * ClassFileInput.java (readAttribute): Revert previous change.
- * InnerClassesAttr.java (print): Mask short data by 0xFFFF.
- * LineNumbersAttr.java (print): Mask short data by 0xFFFF.
- * Type.java (isSubtype, isMoreSpecic): New methods.
- 1999-04-15 Per Bothner <bothner@Magnus.Cygnus.COM>
- * ClassFileInput.java (readAttribute): Use readUnsignedShort (twice).
- (From Jay Krell <jay.krell@cornell.edu>.)
- * CodeAttr.java (emitStore): Add missing space in error message.
-
- 1999-04-05 Geoff Berry <gcb@duke.edu>
- * ClassFileInput.java (readAttribute): Handle Exceptions attribute.
- * CpoolClass.java (getClassType): New method.
- * Method.java (getExceptionAttr, setExceptions(short[]),
- setExceptions(ClassType[]), getExceptions): New methods.
- * ExceptionsAttr.java: New file.
- * Makefile.am (java_JAVA): Add ExceptionsAttr.java.
- Sat Mar 20 10:59:28 1999 Per Bothner <bothner@Magnus.Cygnus.COM>
- * Type.java (getSize, isVoid): New methods.
- * CodeAttr.java (pushType, emitInvokeMethod, emitReturn):
- Handle other void types (size==0) besides Type.void_type.
- 1999-03-13 Geoff Berry <gcb@duke.edu>
- * SwitchState.java (addDefault(Label,CodeAttr)): New method.
- (addCase(int,Label,CodeAttr)): Fix binary search.
- (finish): Move pushType call.
- Tue Mar 16 20:49:08 1999 Per Bothner <bothner@Magnus.Cygnus.COM>
- * PrimType.java (emitCoerceFromObject): Handle coercing to void.
- * ClassType.java (getModifiers): If access_flags is 0,
- check reflectClass.getModifiers(). (Bit of a hack.)
- Thu Feb 11 16:14:30 1999 Zvi Har'El <rl@math.technion.ac.il>
- * InnerClassesAttr.java (print): Fix for anonymous classes.
- 1999-02-28 Geoff Berry <gcb@duke.edu>
- * CodeAttr.java (emitArrayLength): Add type check for incoming
- array.
- (emitNewArray(Type,int)): New method to support the
- `multianewarray' instruction.
- (emitInc): New method to support the `iinc' instruction.
- (emitGotoIfEq): Fix double case to use `dcmpl'.
- (emitGotoIfLt, emitGotoIfGe, emitGotoIfGt, emitGotoIfLe,
- emitGotoIfCompare2): New methods.
- (emitIfCompare1): Add type check for incoming int.
- (emitIfRefCompare1, emitIfNotNull, emitIfNull): New methods.
- (emitIfLt, emitIfGe, emitIfGt, emitIfLe): New methods.
- (disAssemble): Fix invokeinterface handling.
- * ConstantPool.java (addClass): Change parameter type from
- ClassType to ObjectType to allow ArrayTypes to be added.
- Mon Feb 22 23:17:08 1999 Per Bothner <bothner@cygnus.com>
- * ObjectType.java (getReflectClass): Replace '/' by '.' in
- signature before passing it to Class.forName. Needed for array types.
- Tue Feb 9 09:52:36 1999 Per Bothner <bothner@Magnus.Cygnus.COM>
- * CodeAttr.java (emitNewArray): Result is appropriate ArrayType.
- (saveStackTypeState, restoreStackTypeState): New methods.
- (emitReturn): Note unreachable_here.
- * Method.java (setModifiers): New method.
- * SwitchState.java (restoreStack): Rmeove method.
- (<init>): Call CodeAttr.saveStackTypeState.
- (addCase, addDefault): Use CodeAttr.restoreStackTypeState
- (finish): Push eror string *after* new'ing exception..
- Sat Jan 16 09:29:34 1999 Per Bothner <bothner@Magnus.Cygnus.COM>
- * CodeAttr.java (reorder_fixups): Only reorder if oldest != null.
- (print): Fix two small bugs for tableswitch.
- * LocalVarsAttr.java (enterScope): Set start_pc of local Variables.
- * SwitchState.java (addCase): Fix typo. Increment numCases.
- (finish): Add defaultLabel, if none was specified. Fix thinko.
- * ClassTypeWriter.java: Remove some useless commented-out code.
- 1998-12-08 Geoff Berry <gcb@cs.duke.edu>
- * gnu/bytecode/CodeAttr.java (emitShl, emitShr, emitUshr,
- emitInvokeInterface): New methods.
- * gnu/bytecode/Field.java (getDeclaringClass, setStaticFlag,
- getStaticFlag, getFlags): New methods.
- * gnu/bytecode/Method.java (toString): New method.
- Sat Nov 7 09:46:18 1998 Per Bothner <bothner@cygnus.com>
- * ConstantPool.java (rehash): New method.
- (addUtf8, addClass, addValue1, addvalue2, addString, addNameAndType,
- addRef): Call rehash if no hashTab.
- (<init>(DataInputStream)): Don't lock.
- * CpoolEntry.java (add_hashed): Make package private.
- (<init>): Handle creating or growing hashTab by ConstantPool.rehash.
- * CpoolClass.java, CpoolNameAndType.java, CpoolRef.java,
- CpoolString.java, CpoolUtf8.java, CpoolValue1.java, CpoolValue2.java
- (hashCode): Add new non-static override - recalculate if hash is 0.
- * LineNumbersAttr.java (<init>): Set code.lines to this.
- * LocalVarsAttr.java (<init>): Set code.locals to this.
- * CodeAttr.java (<init>): Set meth.code to this.
- 1998-10-06 Geoff Berry <gcb@cs.duke.edu>
- * CodeAttr.java: (lookup(String)): Make public.
- (addLocal(Type,String)): Make public.
- Sat Oct 17 13:04:32 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (emitNot): Use explicit parameter instead of topType.
- (emitConvert): Remove single-argument form.
- (emitMonitorEnter, emitMonitorExit): New methods.
- (emitTryStart): Always save result (in local var) if there is one.
- (disAssembler): Fix typo moniorenter -> monitorenter.
- * Scope.java (addVariable): Make public.
- * Type.java (throwable_type): New static.
- Fri Sep 11 20:05:59 1998 Per Bothner <bothner@cygnus.com>
- * ClassType.java (make): New static overload.
- (setname): Make public.
- (getSuperclass): New method.
- * PrimType.java (charValue, booleanValue): New coercions.
- Sat Aug 29 20:24:39 1998 Per Bothner <bothner@cygnus.com>
- * Method.java (getModifiers): New method.
- * Type.java (make): Do (many) ClassType.make instead of new ClassType.
- * Variable.java (allocateLocal): If assigned, return immediately.
- * ZipLoader.java (loadClass): Fix small logic error.
- Sat Aug 29 09:14:00 1998 Per Bothner <bothner@cygnus.com>
- * Method.java (assign_local): Removed.
- * Scope.java (addVariableAfter): New method.
- * CodeAttr.java (beginScope): Removed. Not needed after all.
- 1998-08-28 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (beginScope): New method.
- (enterScope): Note PC in start_pc.
- (emitTailCall): Take extra Scope argument.
- * Label.java (hasFixups): New method.
- Wed Jul 29 09:47:09 1998 PARMELAN Edouard <parmee@postecss.ncrfran.france.ncr.com>
- * ClassTypeWritter,java (printSignature): Add missing commas.
- Wed Jul 22 22:18:24 1998 Per Bothner <bothner@cygnus.com>
- * ZipLoader.java (loadClass): Fix variable clash.
- (Reported by Lynn Quam <quam@ai.sri.com>.)
- * CodeAttr.java (emitMaybeWide): New function.
- (emitLoad, emitStore): Fix bug using emitMaybeWide.
- (disAssemble): Fix a few buglets.
- * LineNumbersAttr.java (write): Minor optimization.
- * ArrayClassLoader.java: Moved from ../../kawa/lang/SchemeLoader.java.
- * Makefile.am: Update.
- (install-html): Subsumed by install-subdir-html in ../Makefile.am.
- Mon Jun 29 18:56:04 1998 Per Bothner <bothner@cygnus.com>
- * Method.java (compile_tailcall): Replaced by ...
- * CodeAttr.java (emitTailCall): ... new method.
- Thu Jun 25 22:40:05 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (stack_types): Make non-private (for SwitchState).
- Mon Jun 22 18:33:13 1998 Per Bothner <bothner@cygnus.com>
- * Access.java (toString): Print unrecognized flags as hex value.
- * ClassTypeWriter.java (printClassInfo): Don't print hex access flags.
- * CpoolClass.java (getStringName): New method.
- * Label.java: Fix bugs in how relocations were implemented.
- * ClassFileInput.java (readAttribute): Handle "InnerClasses".
- * InnerClassesAttr.java: New, for JDK 1.1 "InnerClasses" attribute.
- * SwitchState.java: New - state for a switch statement.
- * Makefile.am: Add new classes.
- Mon Apr 27 13:18:01 1998 Jeff Haynes <jhaynes@dascom.com>
- * ClassType.java, ConstantPool.java, CpoolClass.java, CpoolUtf8.java,
- CpoolNameAndType.java, CpoolRef.java, CpoolString.java,
- CpoolValue1.java, CpoolValue2.java, Field.java, Method.java:
- Add public access methods for class members so that I can
- interogate a class from outside this java package.
- Fri May 15 21:33:19 1998 Per Bothner <bothner@cygnus.com>
- * Type.java (registerTypeForClass): New static method.
- (make): Call registerTypeForClass.
- * PrimType.java (<init>): Call registerTypeForClass.
- Tue Apr 21 00:04:41 1998 Per Bothner <bothner@cygnus.com>
- * dump-main.cc: New file - a main() wrapper for dump.main.
- * Makefile.am: Add rules to build stand-alone executable
- for dump, when compiled by gcc, and linked with libjava.
- Sat Apr 4 17:36:03 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (readPC): New instance variable.
- Set it most places that read the PC.
- (emitPushConstant, emitPushFloat): New methods.
- (emitAnd, andIOR, emitXOr, emitNot): New methods.
- (emitGotoIfInt{Eq,New,Lt,Ge,Gt,Le}Zero, emitIfEq): New methods.
- (emitRet): Add missing calls to reserve.
- * Label.java (define): Remove version that takes a Method.
- (define): If label follows goto of label, try to optimize away goto.
- * IfState.java (<init>): Default start_stack_size to code.PC.
- * CodeAttr.java (emitTryStart): Extra result_type argument.
- Generate code to save stack (if non-empty) in new Variables.
- (emiTryCatchEnd): Restore stack.
- Code to save result moved here from TryExp.
- * TryState.java (savedStack): Save stack here.
- (saved_result) New variable to store final result.
- * Makefile.am: Re-write to compile all out-of-date *.java at once.
- Wed Mar 18 12:06:13 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (emitRet): Add missing reserve calls.
- Sat Mar 7 08:27:38 1998 Per Bothner <bothner@cygnus.com>
- * Add and fix various comments for javadoc.
- * overview.html: New file (derived from README).
- * README: Now mainly just a link to overview.html.
- * LineNumbersAttr.java (put): Make public.
- * Location.java: Make class public.
- * Makefile.am (HTML_HOME, install-html): New for installing html.
- * CodeAttr.java (adjustTypedOp): New private method.
- (emitLoad, emitStore): Used new adjustTypedOp.
- (emitBinop, emitAdd, emitSub, emitMul, emitDiv, emitRem): New here.
- * Method.java (compile_binop, compile_primop, compile_add,
- compile_sub, compile_mul, compile_div, compile_rem): Removed here.
- * Type.java (coerceFromObject): Made abstract.
- * ObjectType.java (coerceFromObject): Moved here from Type.
- Add special handling for Type.string_type.
- Mon Mar 2 22:56:44 1998 Per Bothner <bothner@cygnus.com>
- * Type.java (make): New static method.
- * ArrayType.java (getComponentType): New method.
- * ClassType.java (getField): New method.
- (addMethod): Re-use existing Method if there is a match.
- (getReflectClass, emitCoerceFromObject): Move to ObjectType.
- * ObjectType.java: New abstract class.
- * Makefile.am, Makefile.in (OBJ): Added ObjectType.class.
- * CodeAttr (emitTypedOp): New private method.
- (emitArrayStore, emitArrayLoad, emitNewArray): New methods.
- * Method.java (compile_array_store, compile_array_load): Removed.
- Mon Feb 23 22:50:46 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (emitConvert): Fix thinko - s/to_sig/from_sig/.
- Sun Feb 8 23:29:37 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (emitGotoIfEq): Use signature to select opcode.
- Tue Feb 3 12:33:46 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (emitPushThis, emitInvokeMethod, emitInvokeVirtual,
- emitInvokeSpecial, emitInvokeStatic, emotGotoIfEq, emitGotoIfNE,
- emitGotoIf, emitIfIntNotZero, emitIfIntCompare, EmitIfIntLt, emitIfNEq,
- emitConvert, emitInstanceof): New methods based on old ones in Method.
- * Method.java (compile_convert, compile_goto_ifeq, compile_goto_ifne,
- compile_goto_if, compile_if_neq_0, compile_if_icmp, compile_ifi_lt,
- compile_ifneq, compile_invoke_method, compile_invoke_virtual,
- compile_invoke_special, compile_invoke_static): Removed methods.
- * Type.java (byte_type etc): Change types from Type to PrimType.
- (toString, isInstance, emitIsInstance, coerceFromObject,
- coerceToObject, emitCoerceToObject): New virtual methods.
- (compileCoerceFromObject): Rename to emitCoerceFromObject and
- change argument type.
- * ClassType.java (compileCoerceFromObject): Likewise.
- * PrimType.java: New class - extends type.
- * Makefile.am, Makefile.in (OBJ): Add PrimType.class.
- Mon Jan 26 16:24:46 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (emitCheckcast): New method, base on
- Method.compile_checkcast.
- * Method.java (Method.compile_checkcast): Now just a stub.
- * Type.java (isValidJavaTypeName): New method.
- Sun Jan 11 15:51:51 1998 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (emitFinallyStart): Re-set end_pc.
- * Type.java (reflectClass): New field.
- (getReflectClass): New method.
- (<init>): Take extra reflectClass argument.
- * ClassType.java (getReflectClass, toString): New methods.
- * ArrayType.java (getReflectClass): New method.
-
- Sun Dec 14 15:55:22 1997 Per Bothner <bothner@cygnus.com>
- * ClassFileInput.java (readClassType):
- (readClassInfo): Read interface indexes correctly.
- * CodeAttr.java (emitLoad, emitThrow): New methods.
- Fix various problems with exception table support.
- * Method.java (compile_push_value): Replaced by CodeAttr.emitLoad.
- * ZipMember.java (getData): New method, based on ZipArchive.contents.
- * ZipArchive.java (contents): Move to ZipMember. Update callers.
- * ZipLoader.java: Re-write to use java.util.zip.ZipFile.
- Thu Nov 27 21:22:16 1997 Per Bothner <bothner@cygnus.com>
- * TryState.java: New class, for exception handling.
- * Makefile.am: Added TryState.class.
- * Method.java: Move mone methods to CodeAttr.java.
- * CodeAttr.java: Rename compile_xxx to emitXxx.
- (addhandler, emitTryStart, emitTryEnd. emitCatchStart, emitCatchEnd,
- emitFinallyStart, emitFinallyEnd, emitTryCatchEnd): New methods
- to support exception handling.
- * ClassFileInput.java: Create exception table.
- * Scope.java (various places): Pass CodeAttr instead of Method.
- * Variable.java: Moved functionality here from Method.java.
-
- Mon Nov 10 16:57:28 1997 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java (disAssemble): New method.
- * ClassTypeWriter.java (printConstantOperand): New method.
- * ClassFileInput.java (readAttribute): Don't use Method.assign_local
- to set LocalVariableTable offsets, since that doesn't like overlaps.
- Sun Nov 2 13:39:48 1997 Per Bothner <bothner@cygnus.com>
- * CodeAttr.java, LineNumbersAttr.java, LocalVarsAttr.java:
- New classes to represent more standard attributes.
- * Location.java: New class - shared stuff from Field and Variable.
- * Field.java, Variable.java: Inherit from Location; move stuff there.
- * Attribute.java (isSkipped, setSkipped, getlengthAll): New methods.
- * ClassFileInput.java (readAttributes): Make more robust.
- Read Code, lineNumberTable, and LocalVariableTable attributes.
- * ClassType.java (addMethod): Use new Method.setSignature.
- * ClassTypeWriter.java (printSignature): New method. Use it.
- * Label.java (relocate_fixups, relocate_wide, emit_spring,
- add_fixup, emit, emit_wide): Charge arg from Method to CodeAttr.
- * Makefile.am: Add new classes. Add JCFLAGS.
- * Method.java: Many variables and methods moved to CodeAttr,
- LineNumbersAtrr or LocalsVarsAttr. Update accordingly.
- (setSignature, setName, assign_constants): New methods.
- * ClassType.java, IfState.java: Update for stuff moved around.
- * VarEnumerator.java (reset): Tolerate null scope.
- * Type.java (signatureToType): Add overloading with offset and length.
- Fri Sep 26 21:12:29 1997 Per Bothner <bothner@cygnus.com>
- * Attribute.java, AttrContainer.java, MiscAttr.java,
- SourceFileAttr.java, dump.java: New classes.
- * Makefile.am, Makefile.in: Update for new classes and new automake.
- * ClassFileInput.java: Add support for reading Attributes.
- (main): Moved to new dump.java.
- * ClassTypeWriter.java: Add support for printing Attributes.
- * ClassType.java, Field.java, Method.java: Implement AttrContainer.
- * ClassType.java: Move some stuff to SourceFileAttr.java.
- Fri Sep 26 21:01:25 1997 Per Bothner <bothner@cygnus.com>
- * CpoolUtf8.java (intern): New method.
- * CpoolValue2.java (CpoolValue2): Extra slot count increment needed.
- * CpoolEntry.java (getIndex): New method.
- Sun Jun 22 14:00:10 1997 Per Bothner <bothner@cygnus.com>
- * ConstantPool.java: Add missing break, missing increment.
- Replace most readShort by readUnsignedShort.
- * ClassFileInput.java: Likewise.
- Fixes from Jay Krell <jay.krell@cornell.edu>.
- * ClassTypeWriter.java: Change to extend PrintWriter, not PrintStream.
- * ZipMember.java (print): Fix to use ps argument, not System.out.
- Sun Mar 30 22:54:48 1997 Per Bothner <bothner@cygnus.com>
- * LICENSE: New file - and new license!
- * *.java: Added copyright notice.
- * Access.java (toString): New static method.
- * ClassFileInput.java: New class for reading .class files.
- * ClassType.java" Remove get_*_const methods.
- Rename various fields. Avoid creating constant pool until needed.
- * ClassTypeWriter.java: New class, for printing a ClassType.
- * ConstantPool.java: New class - manage constant pool.
- * Cpool*.java: Add getTag method. Rename hash_of to hashCode.
- Add print methods, and new default constructors.
- * CpoolInt.java, CpoolFloat.java: Combined into CpoolValue1.java.
- * CpoolLong.java, CpoolDouble.java: Combined into CpoolValue2.java.
- * Type.java (signatureToPrimitive, signatureToType, signatureLength,
- signatureToName): New methods.
- Tue Mar 25 13:26:29 1997 Per Bothner <bothner@kalessin.cygnus.com>
- Move this package from codegen to gnu.bytecode.
- Change all names and signatures from byte[] (Utf8) to String.
- Rename some methods to be more "conventional" (e.g.
- strName -> getName; set_class_name -> setname.
- Mon Mar 24 13:35:46 1997 Per Bothner <bothner@deneb.cygnus.com>
- * Method.java: Add more char->byte casts.
- Wed Mar 19 11:04:02 1997 Per Bothner <bothner@deneb.cygnus.com>
- * CpoolRef.java (get_const): Set tags to CONSTANT_InterfaceMethodref
- if method's class is an interface.
- * Method.java (compile_invoke_method): Handle invokeinterface properly,
- Mon Mar 17 17:15:28 1997 Per Bothner <bothner@deneb.cygnus.com>
- * ArrayType.java, Type.java: Cast char literals to byte.
- * ClassType.java: Rename set_super -> setSuper.
- * Method.java (compile_arraylength, compile_if_icmp,
- compile_ifi_lt): New methods.
- (compile_invoke_nonvirtual): Renamed to compile_invoke_special.
- Tue Feb 4 22:13:40 1997 Per Bothner <bothner@deneb.cygnus.com>
- * ZipArchive.java: Add char-constant -> byte casts.
- Mon Feb 3 17:16:17 1997 Per Bothner <bothner@kalessin.cygnus.com>
- * ClassType.java (getClassName): Removed.
- (compileCoerceFromObject): New methods.
- (this_name): Moved to Type.
- * Type.java (getName): New method.
- (compileCoerceFromObject): New methods.
- * Method.java (set_static): Renamed to setStaticFlag.
- (compile_convert, compile_goto_if, compile_primop,
- getDeclaringClass, getReturnType, getParameterTypes, getName): New
- Fri Jan 3 18:52:20 1997 Per Bothner <bothner@deneb.cygnus.com>
- * Access: Make class public.
- (VALATILE -> VOLATILE): Fix typo.
- * ArrayType.java (elements): Make public.
- * Method.java (compile_array_store, compile_array_load):
- Boolean arrays use baload/bastore (byte load/store) op.
- * Type.java (pointer_type, string_type): Make types specific.
- Sat Nov 16 14:52:45 1996 Per Bothner <bothner@deneb.cygnus.com>
- * IfState.java: New class.
- * Makefile.am, Makefile.in: Add IfState.class.
- * Method.java (if_stack): New field.
- (compile_ifneq, compile_else, compile_fi): New methods.
- Sat Oct 26 08:59:10 1996 Per Bothner <bothner@deneb.cygnus.com>
- * *.java: Remove redundant 'import codegen.*'. (MS j++ complains.)
- Mon Sep 16 11:09:40 1996 Per Bothner <bothner@deneb.cygnus.com>
- * CpoolDouble.java: New class, for CONSTANT_Double.
- * Makefile.{am,in}: Add CpoolDouble.class.
- * Method.java (compile_push_double): New method.
- * ZipArchive.java: Fix usage string.
-
- * Makefile.{am,in}: (javadir): Use $(subdir)
- {DEP_,}DISTFILES): Do not include DATA (i.e. *.class).
- Replace generated EXTRA_DIST with ditto SOURCES.
- Thu Sep 12 17:21:20 1996 Per Bothner <bothner@deneb.cygnus.com>
- * CpoolLong.java: New class, for CONSTANT_Long.
- * Method.java (compile_push_long): New method.
- * codegen/Makefile.{am,in}: Add EXTRA_DIST rule.
- Use $*.java instead of possibly-less-portable $(<F).
- Sun Sep 8 22:26:14 1996 Per Bothner <bothner@deneb.cygnus.com>
- * Makefile.{am,in} (JAVAC): Fix -classpath argument.
- Sat Sep 7 13:00:07 1996 Per Bothner <bothner@deneb.cygnus.com>
- * {ClassType,Method}.java: Support emitting "SourceFile" attribute.
- (setSourceFile): New method to set SourceFile.
- * Method.java (compile_checkcast): Combine overloaded methods.
- Tue Sep 3 19:44:28 1996 Per Bothner <bothner@deneb.cygnus.com>
- * ZipArchive.java: Move ZipMember to ...
- * ZipMember.java: ... new file (and make it public).
- * ZipLoader.java: New class (derived from kawa.lang.SchemeLoader).
- * Makefile.{am,in}: Add new classes.
- Fix broken suffix handling.
- * ClassType.java (getClassName): New method.
- * Method.java (compile_linenumber): New method.
- (LineNumberTable_name_index): New field.
- (linenumber_count, linenumber_table): New fields.
- (write): Emit line numbers.
- (compile_invoke_method): Generalize to support invokestatic.
- (compile_invoke_virtual, compile_invoke_nonvirtual,
- compile_invoke_static): Update accordingly.
-
- Sat Jul 20 17:32:28 1996 Per Bothner <bothner@deneb.cygnus.com>
- * Makefile.am, Makefile.in (OBJ): Add ZipArchive.class.
- (CLEANFILES): Add ZipMember.class.
- * Method.java (compile_tailcall, reachableHere): New methods.
- Tue Jul 16 23:18:20 1996 Per Bothner <bothner@deneb.cygnus.com>
- * ZipArchive.java: New class, for handling .zip archives.
- * Field.java (strName): New method.
- * Method.java (assign_local): Fix type lossage.
- (compile_checkcast, maybe_compile_checkcast): New methods for arrays.
- (compile_dup): Gneeralize to handle all the dup* instructions.
- (compile_invoke_static): Don't push_stack_type if returning void.
- Thu Jul 11 14:44:21 1996 Per Bothner <bothner@deneb.cygnus.com>
- * ClassType.java: Add support for implementing interfaces.
- * CpoolUtf8.java (get_const): Use proper equals to compare bytes.
- * Method.java: Support emitting debug info: LocalVariableTable.
- New methods enterScope, assign_local.
- New methods compile_new, compile_array_load, compile_swap,
- copile_store_value, compile_{get,put}{field,static},
- * Scope.java: Renamed field prev -> parent.
- New fields nextSibling, firstChile, lastChild.
- New method linkChild (to enter in tree).
- * VarEnumerator.java: New class.
- * Makefile.am, Makefile.in: Add VarEnumerator.class.
- * Variable.java: New fields offset, flags, name_index, signature_index.
- New methods for accessing flags and iterating.
- Tue Jul 2 11:23:44 1996 Anthony Green <green@csk3.cygnus.com>
- * Makefile.am, Makefile.in: New files to support building codegen
- package.
- * Makefile.am, Makefile.in: Added "make clean" support.
- Mon Jul 1 23:11:46 1996 Per Bothner <bothner@deneb.cygnus.com>
- * Access.java, ArrayType.java, ClassType.java, CpoolClass.java,
- CpoolEntry.java, CpoolInt.java, CpoolNameAndType.java, CpoolRef.java,
- CpoolString.java, CpoolUtf8.java, Field.java, Label.java, Method.java,
- Scope.java, Type.java, Variable.java: New classes in new package.
- This provides a medium-level interface to generating .class files.
|