|
From: Markus H. <ma...@ti...> - 2011-03-20 10:18:40
|
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...>> 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...>
>>>>>> https://lists.sourceforge.net/lists/listinfo/xmlvm-developers
>>>>
>>
|