|
From: Arno P. <ar...@pu...> - 2011-03-22 07:17:49
|
OK, here is the problem: you are using the vtable patch for an iphonec
project. This, unfortunately, does not work (yet). The problem is that
the vtable patch needs a "global view" on all classes. However, in order
to make this happen the XMLVM pipeline needs some refactoring. Sascha is
on this job and is making good progress. We'll send a ping on the
mailing list when the refactoring is done.
Long in short: the vtable patch currently only works for --target=posix.
Arno
On 3/22/11 12:04 AM, Markus Heberling wrote:
> Hi,
>
> disabling the warnings does wonders to xcode4 :D
>
> I get the following error with the table patch:
>
> In file included from
> /Users/markus/Documents/workspace/Kinderlieder/dist/../build/xcode/src/app/native_java_util_Locale.m:9:
> /Users/markus/Documents/workspace/Kinderlieder/dist/../build/xcode/src/lib/iphone/org_xmlvm_iphone_NSString.h:37:
> error: 'XMLVM_ITABLE_SIZE_org_xmlvm_iphone_NSString' undeclared here
> (not in a function)
>
> Here is the relevant generated snippet. As you can see it uses
> XMLVM_ITABLE_SIZE_org_xmlvm_iphone_NSString, but that is not defined in
> the whole project.
>
> // Class declarations for org.xmlvm.iphone.NSString
> XMLVM_DEFINE_CLASS(org_xmlvm_iphone_NSString, 6,
> XMLVM_ITABLE_SIZE_org_xmlvm_iphone_NSString)
>
> Greetings,
> Markus
>
> Am 20.03.2011 um 18:24 schrieb Arno Puder:
>
>>
>> the vtable patch is the way to go, although we can't commit it yet. It
>> doesn't make sense to invest time and effort to fix the HEAD. One
>> problem with the vtable patch is that it causes many compiler warnings
>> (this will be fixed). Unfortunately Xcode doesn't behave well with many
>> warnings which is probably what you meant with beachballing (get a
>> rebate on those $4! ;) ). In the Xcode project settings, select "Inhibit
>> all warnings" and try to compile again.
>>
>> Arno
>>
>>
>> On 3/20/11 3:18 AM, Markus Heberling wrote:
>>> Hi,
>>>
>>> unfortunaltly XCode now beachballs everytime if I have the vtable
>>> patch applied, so can't give you the errors I got...
>>>
>>> But I started xmlvm (without the vtable patch) with debug output and
>>> got this for the affected class:
>>>
>>> [java] [03/20/11 11:02:47.869] DEBUG: Size of vtable for class
>>> com.sun.media.sound.ModelInstrumentComparator: 13
>>> [java] [03/20/11 11:02:47.869] DEBUG: Implemented interfaces:
>>> [java] [03/20/11 11:02:47.869] DEBUG: java.util.Comparator
>>> [java] [03/20/11 11:02:47.869] DEBUG: compare: 11 = 12
>>> [java] [03/20/11 11:02:47.869] DEBUG: equals: 1 = 1
>>> ...
>>> [java] [03/20/11 11:02:52.066] DEBUG: Vtable index for
>>> com.sun.media.sound.ModelInstrumentComparator.compare: 11
>>>
>>> The funny thing is, that it is working for other classes that
>>> implement interfaces, like LinkedList etc...
>>>
>>> Any hint where in the code I could poke around to get this fixed?
>>>
>>> Markus
>>>
>>> Am 18.03.2011 um 20:21 schrieb Arno Puder:
>>>
>>>>
>>>> what errors do you get?
>>>>
>>>> On 3/18/11 12:20 PM, Markus Heberling wrote:
>>>>> Hi,
>>>>>
>>>>> Yes, I did ant clean in xmlvm and in my project several times.
>>>>>
>>>>> Markus
>>>>>
>>>>> Am 18.03.2011 um 20:14 schrieb Arno Puder:
>>>>>
>>>>>>
>>>>>> did you do an "ant clean"? You probably have an old cache on your
>>>>>> system.
>>>>>>
>>>>>> Arno
>>>>>>
>>>>>>
>>>>>> On 3/18/11 12:09 PM, Markus Heberling wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I applied the patch, but unfortunately I can't compile the XCode
>>>>>>> project
>>>>>>> afterwards. I get different errors every time or XCode beachballs and
>>>>>>> doesn't compile at all...
>>>>>>>
>>>>>>>
>>>>>>> Greetings,
>>>>>>> Markus
>>>>>>>
>>>>>>> Am 17.03.2011 um 22:02 schrieb Arno Puder:
>>>>>>>
>>>>>>>>
>>>>>>>> Oh! I'm sorry. I thought you were another Markus!
>>>>>>>>
>>>>>>>> Can you please check the review system. There is a patch by another
>>>>>>>> Markus that will probably fix your problem. We hope to commit that
>>>>>>>> patch soon.
>>>>>>>>
>>>>>>>> Arno
>>>>>>>>
>>>>>>>> On Mar 17, 2011, at 1:43 PM, Markus Heberling<ma...@ti...
>>>>>>>> <mailto:ma...@ti...>
>>>>>>>> <mailto:ma...@ti...>> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I'm trying to convert a class that implements the Comparator
>>>>>>>>> interface with the c-backend. Unfortunately using that class as a
>>>>>>>>> comparator (e.g. in Arrays.sort) gives a EXC_BAD_ACCESS. In the
>>>>>>>>> included source snippet, you can see, that the
>>>>>>>>> com_sun_media_sound_ModelInstrumentComparator_compare___javax_sound_midi_Instrument_javax_sound_midi_Instrumentfunction
>>>>>>>>> is bound to
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.vtable[11].
>>>>>>>>> But a
>>>>>>>>> little bit later in the interface vtable
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.vtable[12]is
>>>>>>>>> used, which is unset and leads to the error. I have manually
>>>>>>>>> changed
>>>>>>>>> the 12 to 11 in that line and the code works fine after that.
>>>>>>>>>
>>>>>>>>> void __INIT_IMPL_com_sun_media_sound_ModelInstrumentComparator()
>>>>>>>>> {
>>>>>>>>> if(!__TIB_com_sun_media_sound_ModelInstrumentComparator.classInitializationBegan)
>>>>>>>>> {
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.classInitializationBegan=
>>>>>>>>> 1;
>>>>>>>>>
>>>>>>>>> // Initialize base class if necessary
>>>>>>>>> if(!__TIB_java_lang_Object.classInitialized)
>>>>>>>>> __INIT_IMPL_java_lang_Object();
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.newInstanceFunc=
>>>>>>>>> __NEW_INSTANCE_com_sun_media_sound_ModelInstrumentComparator;
>>>>>>>>> // Copy vtable from base class
>>>>>>>>> XMLVM_MEMCPY(__TIB_com_sun_media_sound_ModelInstrumentComparator.vtable,
>>>>>>>>> __TIB_java_lang_Object.vtable,
>>>>>>>>> sizeof(__TIB_java_lang_Object.vtable));
>>>>>>>>> // Initialize vtable for this class
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.vtable[11] =
>>>>>>>>> (VTABLE_PTR)
>>>>>>>>> &com_sun_media_sound_ModelInstrumentComparator_compare___javax_sound_midi_Instrument_javax_sound_midi_Instrument;
>>>>>>>>> // Initialize vtable for implementing interfaces
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.numImplementedInterfaces=
>>>>>>>>> 1;
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.implementedInterfaces=
>>>>>>>>> (__TIB_DEFINITION_TEMPLATE* (*)[1])
>>>>>>>>> XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 1);
>>>>>>>>> __INIT_IMPL_FOR_CLASS_java_util_Comparator(&__TIB_com_sun_media_sound_ModelInstrumentComparator.implementedInterfaces[0][0]);
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.implementedInterfaces[0][0]->vtable[11]
>>>>>>>>> = __TIB_com_sun_media_sound_ModelInstrumentComparator.vtable[12];
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.implementedInterfaces[0][0]->vtable[1]
>>>>>>>>> = __TIB_com_sun_media_sound_ModelInstrumentComparator.vtable[1];
>>>>>>>>>
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.declaredFields=
>>>>>>>>> &__field_reflection_data[0];
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.numDeclaredFields=
>>>>>>>>> sizeof(__field_reflection_data)
>>>>>>>>> / sizeof(XMLVM_FIELD_REFLECTION_DATA);
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.constructorDispatcherFunc=
>>>>>>>>> constructor_dispatcher;
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.declaredConstructors=
>>>>>>>>> &__constructor_reflection_data[0];
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.numDeclaredConstructors=
>>>>>>>>> sizeof(__constructor_reflection_data) /
>>>>>>>>> sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.methodDispatcherFunc=
>>>>>>>>> method_dispatcher;
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.declaredMethods=
>>>>>>>>> &__method_reflection_data[0];
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.numDeclaredMethods=
>>>>>>>>> sizeof(__method_reflection_data) /
>>>>>>>>> sizeof(XMLVM_METHOD_REFLECTION_DATA);
>>>>>>>>> __CLASS_com_sun_media_sound_ModelInstrumentComparator=
>>>>>>>>> XMLVM_CREATE_CLASS_OBJECT(&__TIB_com_sun_media_sound_ModelInstrumentComparator);
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.clazz=
>>>>>>>>> __CLASS_com_sun_media_sound_ModelInstrumentComparator;
>>>>>>>>> __CLASS_com_sun_media_sound_ModelInstrumentComparator_ARRAYTYPE=
>>>>>>>>> XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_com_sun_media_sound_ModelInstrumentComparator,
>>>>>>>>> 1);
>>>>>>>>>
>>>>>>>>> __TIB_com_sun_media_sound_ModelInstrumentComparator.classInitialized=
>>>>>>>>> 1;
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> I don't have enough knowledge of the c backend, so I can't find the
>>>>>>>>> place where to correct this in the source myself...
>>>>>>>>>
>>>>>>>>> (And yes, you see correctly, that I'm trying to do MIDI in
>>>>>>>>> there :D)
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Markus
>>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>> Colocation vs. Managed Hosting
>>>>>>>>> A question and answer guide to determining the best fit
>>>>>>>>> for your organization - today and in the future.
>>>>>>>>> http://p.sf.net/sfu/internap-sfd2d
>>>>>>>>> _______________________________________________
>>>>>>>>> Xmlvm-developers mailing list
>>>>>>>>> Xml...@li...
>>>>>>>>> <mailto:Xml...@li...>
>>>>>>>>> <mailto:Xml...@li...>
>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/xmlvm-developers
>>>>>>>
>>>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> Colocation vs. Managed Hosting
>> A question and answer guide to determining the best fit
>> for your organization - today and in the future.
>> http://p.sf.net/sfu/internap-sfd2d
>> _______________________________________________
>> Xmlvm-developers mailing list
>> Xml...@li...
>> https://lists.sourceforge.net/lists/listinfo/xmlvm-developers
>
|