Re: BCEL newbie question
Jacob Kjome <[email protected]> Thu, 27 Oct 2005 23:28:12 -0500
| Newsgroups | gmane.comp.jakarta.bcel.user |
|---|---|
| Message-ID | <[email protected]> |
Trying yet again. Is my question too newbie or something? I'm hoping for a little direction here. thanks, Jake At 09:46 PM 9/19/2005 -0500, you wrote: > >Trying again. Any takers? Here's a link to the beginning of the thread >for better readability.... > >http://www.mail-archive.com/[email protected]/msg00780.html > > >Jake > >At 12:24 AM 9/3/2005 -0500, you wrote: > > > >Is there someone that can comment on this? I'm sure I'm just missing > >something small. But even though it is small, I'm still dead in the water > >until I get it figured out. > > > >thanks, > > > >Jake > > > >At 09:59 AM 8/27/2005 -0500, you wrote: > > > > > >How do I get this... > > > > > >private void createMethod_11() { > > > InstructionList il = new InstructionList(); > > > MethodGen method = new MethodGen(ACC_STATIC | ACC_FINAL, > > >Type.VOID, Type.NO_ARGS, new String[] {}, "<clinit>", > > > className, il, _cp); > > > il.append(_factory.createFieldAccess(className, "class$L" + > > >className.replace('.', '$'), new ObjectType( > > > "java.lang.Class"), Constants.GETSTATIC)); > > > il.append(_factory.createFieldAccess(className, > > >"XMLC_GENERATED_CLASS", > > > new ObjectType("java.lang.Class"), Constants.PUTSTATIC)); > > > il.append(_factory.createFieldAccess(className, > > > > > >"class$Lorg$enhydra$xml$xmlc$dom$xerces$XercesHTMLDomFactory", > > > > > >new ObjectType("java.lang.Class"), > > > Constants.GETSTATIC)); > > > > > >il.append(_factory.createInvoke("org.enhydra.xml.xmlc.dom.XMLCDomFacto ryCa > >che", > > > "getFactory", new > > >ObjectType("org.enhydra.xml.xmlc.dom.XMLCDomFactory"), new Type[] { new > > >ObjectType( > > > "java.lang.Class") }, Constants.INVOKESTATIC)); > > > il.append(_factory.createFieldAccess(className, "fDOMFactory", new > > >ObjectType( > > > "org.enhydra.xml.xmlc.dom.XMLCDomFactory"), > > >Constants.PUTSTATIC)); > > > il.append(InstructionFactory.createReturn(Type.VOID)); > > > method.setMaxStack(); > > > method.setMaxLocals(); > > > _cg.addMethod(method.getMethod()); > > > il.dispose(); > > > } > > > > > >to generate this... > > > > > > static { > > > XMLC_GENERATED_CLASS = $$XMLC_GENERATED$$.dyna.dyna01.html.class; > > > fDOMFactory = > > >XMLCDomFactoryCache.getFactory(org.enhydra.xml.xmlc.dom.xerces.XercesHTM >LDom > > >Factory.class); > > > } > > > > > >currently, it is generating this... > > > > > > static final { > > > XMLC_GENERATED_CLASS = class$L$$XMLC_GENERATED$$$dyna$dyna01$html; > > > fDOMFactory = > > >XMLCDomFactoryCache.getFactory(class$Lorg$enhydra$xml$xmlc$dom$xerces$Xe >rces > > >HTMLDomFactory); > > > } > > > > > > > > >The class was originally generated by the BCELifier (by someone else on our > > >team) based on an example generated XMLC ( http://xmlc.objectweb.org/ ) > > >class. We tweaked it for our purposes, but the code in the block above > > >never really worked so we had it commented out (I also removed bits to > > >avoid generating code that didn't need to be generated and got it slimmed > > >down to the code you see above). However, that means that some > > >functionality isn't available where it works just fine for the ASM2 version > > >(built with the ASMifier). I would like the two to generate nearly > > >identical code and this is the last little bit that I need to get > > >working. Can someone please point out the syntax needed to generate the > > >proper code (like the former, which is spit out by the ASM2 version) rather > > >than the improper code (like the latter, generated by the BCEL code above, > > >which is clearly incorrect, but I'm just not familiar enough with these > > >bytecode tools to know what the proper syntax is). > > > > > >thanks, > > > > > > > > >Jake > > > > > > > > > > > > > > >--------------------------------------------------------------------- > > >To unsubscribe, e-mail: [email protected] > > >For additional commands, e-mail: [email protected] > > > > > > > > > > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [email protected] > >For additional commands, e-mail: [email protected] > > > > > > > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [email protected] >For additional commands, e-mail: [email protected] > > >