|
From: Markus H. <ma...@ti...> - 2011-03-18 19:09:57
|
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...> 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_Instrument function 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...
>> https://lists.sourceforge.net/lists/listinfo/xmlvm-developers
|