do you have problems with long and double type ?
> Thanks,
>
> Would the following stack trace be related to these indexes? I'm
> assuming that Registers are analogous to entries in the index? Whould
> this be correct?
>
> java.lang.VerifyError: (class: foo/bar/NewTestBean, method: testMethod
> signature: (DI)D) Register 2 contains wrong type
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at
java.lang.Class.privateGetDeclaredConstructors(Class.java:1576)
> at java.lang.Class.getConstructor0(Class.java:1748)
> at java.lang.Class.newInstance0(Class.java:266)
> at java.lang.Class.newInstance(Class.java:249)
> at
>
org.apache.commons.jelly.tags.bcel.BsfClassExtender.main(BsfClassExtender.ja
va:194)
> Exception in thread "main"
>
>
> -Mark
>
> Bob Lee wrote:
> > You are correct. I'm pretty sure the indexes work like this (I
> > personally use Javassist):
> >
> > Static method:
> > 0..n: arguments.
> > n+1..m: local variables.
> >
> > Instance method:
> > 0: this
> > 1..n: arguments.
> > n+1..m: local variables.
> >
> > "load" pushes the variable at that index on to the stack.
> > "store" pops the top value off of the stack and stores it in the
> > specified index.
> >
> > Thanks,
> > Bob
> >
> > On Thursday, January 30, 2003, at 07:54 PM, Mark R. Diggory wrote:
> >
> >> Hi,
> >>
> >> I currently have this code fragment
> >>
> >> *
> >> Integer xyz = new Integer(foo);
> >> manager.declareBean("foo", xyz, xyz.getClass());
> >> *
> >>
> >> Which I use BCELLifier on to get the following section of BCEL code:
> >>
> >> InstructionHandle ih_14 =
> >> il.append(_factory.createNew("java.lang.Integer"));
> >> il.append(InstructionConstants.DUP);
> >> il.append(_factory.createLoad(Type.INT, 1));
> >> il.append(_factory.createInvoke("java.lang.Integer",
> >> "<init>",Type.VOID,new Type[] { Type.INT }, Constants.INVOKESPECIAL));
> >> il.append(_factory.createStore(Type.OBJECT, 3));
> >> InstructionHandle ih_23 = il.append(_factory.createLoad(Type.OBJECT,
> >> 0));
> >> il.append(_factory.createFieldAccess("org.apache.commons.jelly.tags.bce
> >> l.Test","manager",new ObjectType("com.ibm.bsf.BSFManager"),
> >> Constants.GETFIELD));
> >> il.append(new PUSH(_cp, "foo"));
> >> il.append(_factory.createLoad(Type.OBJECT, 3));
> >> il.append(_factory.createLoad(Type.OBJECT, 3));
> >> il.append(_factory.createInvoke("java.lang.Object", "getClass", new
> >> ObjectType("java.lang.Class"), Type.NO_ARGS, >
Constants.INVOKEVIRTUAL));
> >> il.append(_factory.createInvoke("com.ibm.bsf.BSFManager",
> >> "declareBean",Type.VOID, new Type[] { Type.STRING, Type.OBJECT, new
> >> ObjectType("java.lang.Class") }, Constants.INVOKEVIRTUAL));
> >>
> >>
> >> Specifically, I'm struggling with some issues where I don't quite
> >> understand what the indexes are for in situations like
> >>
> >> _factory.createStore(Type.OBJECT, 3)
> >>
> >> and
> >>
> >> _factory.createLoad(Type.OBJECT, 3)
> >>
> >> am I right in assuming that there are a set number of "indexes"
> >> representing positions in the InstructionList and that these above
> >> references represent the setting and getting of Object references in
> >> that list?
> >>
> >> I'm struggling because I'm trying to make the code more "iterative"
> >> where I might iterate over a "set" of handlers/append statements to
> >> append repeatedly to the instruction list (as an Example):
> >>
> >> for(int i = 0; i < argNames.length ; ){
> >>
> >> InstructionHandle ih_14 = il.append(_factory.createNew(argClasses[i]));
> >> ...
> >> il.append(_factory.createStore(Type.OBJECT, i));
> >> ...
> >> il.append(new PUSH(_cp, argName[i]));
> >> il.append(_factory.createLoad(Type.OBJECT, i));
> >> il.append(_factory.createLoad(Type.OBJECT, i));
> >> ...
> >>
> >> }
> >>
> >> My problem is that I get actuall references that end up pointing to
> >> only the first argument. I'm hoping I understand what the indexes are
> >> for, but I'm hoping that you guy's can clarify this for me.
> >>
> >> Thanks,
> >> -Mark Diggory
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> 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]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]