Skip to content

j2objc 1.0.1's IOSClass_forName_() does not handle full class names. #719

@eddydas

Description

@eddydas

Is this an expected change?

My stack trace goes into: IOSClass_forName_("ComMyCompanyMyClass$InnerClass")

Then its
int classCount = objc_getClassList(NULL, 0) gives me 1xK classes.
I print out their names, but their names are like:
MCMyClass$InnerClass

So obviously the regular expression couldn't match that class.

Can you tell me if IOSClass_forName_ is designed to work with the long form names or not?

If it is designed not work with such, then I could trace more on why my (originally working) reflect objects are feeding the full name to IOSClass_forName_. The preliminary results shows that when I use javaLangReflect

#1  0x00000001005eeab8 in IOSClass_forName_ ()
#2  0x00000001005de948 in -[LibcoreReflectParameterizedTypeImpl getRawType] ()
#3  0x00000001005dea00 in -[LibcoreReflectParameterizedTypeImpl getResolvedType] ()
#4  0x00000001005de01c in LibcoreReflectListOfTypes_resolveTypesWithJavaUtilList_ ()
#5  0x00000001005ddf20 in -[LibcoreReflectListOfTypes getResolvedTypes] ()
#6  0x00000001005df884 in LibcoreReflectTypes_getTypeArray_clone_ ()
#7  0x00000001005fa7c8 in -[ExecutableMember getParameterTypes] ()
#8  0x00000001004fdb2c in -[JavaLangReflectProxy forwardInvocation:] ()
#9  0x0000000182eb13e8 in ___forwarding___ ()
#10 0x0000000182db568c in _CF_forwarding_prep_0 ()

The forwarding was due to an invocation to a proxy created in this way:

Proxy.newProxyInstance(
myProxyClass.class.getClassLoader(),
anObjectThatHasSomeConcreteMethods.getClass().getInterfaces(),
anInstanceOfMyProxyClass);

I know I may have been messy above. Or I should say I'm not even sure at which direction I should provide more information to. But a response of the above doubt would help me move forward a lot.

Btw, this bug does not reproduce in j2objc 0.9.8.2.1

Thanks a lot!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions