<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi,<DIV><BR class="khtml-block-placeholder"></DIV><DIV>The tests are working now. But I have a different problem:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I am working on a Ruby wrapper and it works fine functionally but whenever the Ruby garbage collector kicks in I got an BUS error. I had my wrapper code checked by someone who does that very ofter and he says it's ok, so the problem must be either in the way I call fribidi stuff or in fribidi. Attached the code. Maybe someone can check if I do it ok.</DIV><DIV>Any help would be very appreciated.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>-------------</DIV><DIV>#include "ruby.h"</DIV><DIV>#include "fribidi/fribidi.h"</DIV><DIV>#include "fribidi/fribidi_types.h"</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>static VALUE t_convert(VALUE klass, VALUE obj)</DIV><DIV>{</DIV><DIV>    VALUE ret;</DIV><DIV>    FriBidiChar *visual_str;</DIV><DIV>    FriBidiChar *us;</DIV><DIV>    int len_unicode;</DIV><DIV>    int  len_utf8;</DIV><DIV>    char* result;</DIV><DIV>    FriBidiCharType base=FRIBIDI_TYPE_L;</DIV><DIV>    us= (FriBidiChar*) malloc( RSTRING(obj)-&gt;len*4+1);   /*hack we dont know how long the unicode piece will be*/</DIV><DIV>    rb_eval_string("puts 'Enter 1'");</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>    len_unicode=fribidi_utf8_to_unicode (RSTRING(obj)-&gt;ptr, RSTRING(obj)-&gt;len,</DIV><DIV>                   us);</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>    visual_str= (FriBidiChar*) malloc(len_unicode +1);</DIV><DIV>    </DIV><DIV>    rb_eval_string("puts 'Enter 2'");</DIV><DIV>    </DIV><DIV>    fribidi_log2vis(</DIV><DIV>             us,</DIV><DIV>             len_unicode,</DIV><DIV>             &amp;base,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>             visual_str,</DIV><DIV>             NULL,</DIV><DIV>             NULL,</DIV><DIV>             NULL);</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>        result=(char*) malloc(RSTRING(obj)-&gt;len+1);</DIV><DIV>        </DIV><DIV>        rb_eval_string("puts 'Enter 3'");</DIV><DIV>        </DIV><DIV>        len_utf8=fribidi_unicode_to_utf8(visual_str, len_unicode,result);</DIV><DIV>        rb_eval_string("puts 'Enter 4'");</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>   ret =  rb_str_new2(result); </DIV><DIV>   rb_eval_string("GC.start");   /* this sometimes causes the BUS error  also happens when GC is called from the system*/</DIV><DIV>    rb_eval_string("puts 'Enter 5'");</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>   free(result);</DIV><DIV>   free(visual_str);</DIV><DIV>   free(us);</DIV><DIV>   return ret;</DIV><DIV>}</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>VALUE cTest;</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>void Init_rbidi() {</DIV><DIV>  cTest = rb_define_class("RBidi", rb_cObject);</DIV><DIV>  rb_define_singleton_method(cTest, "convert", t_convert, 1);</DIV><DIV>}</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>--------------------</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR><DIV><DIV>Am 10.08.2007 um 01:47 schrieb Behdad Esfahbod:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">This should fix the bug that was recently raised on the list.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Instructions available at: <A href="http://fribidi.org">http://fribidi.org</A>/</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Regards,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">--<SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">behdad</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://behdad.org">http://behdad.org</A>/</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">"Those who would give up Essential Liberty to purchase a little</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-converted-space"> </SPAN>Temporary Safety, deserve neither Liberty nor Safety."</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-converted-space">        </SPAN>-- Benjamin Franklin, 1759</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">fribidi mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:fribidi@lists.freedesktop.org">fribidi@lists.freedesktop.org</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://lists.freedesktop.org/mailman/listinfo/fribidi">http://lists.freedesktop.org/mailman/listinfo/fribidi</A></DIV> </BLOCKQUOTE></DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><P style="margin: 0.0px 0.0px 12.0px 0.0px"><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Codemart GmbH</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Till Vollmer</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Managing Director</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Tel: +49 (0)89 1213 5359</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Mob: + 49 (0)160 718 7403</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Fax: +49 (0)89 1892 1347</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Yahoo ID: till_vollmer</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">Skype: till_vollmer</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; ">www.codemart.de</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT><SPAN class="Apple-converted-space"> </SPAN><BR><FONT class="Apple-style-span" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;"><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><SPAN class="Apple-style-span" style="font-size: 10px; "><A href="mailto:till.vollmer@codemart.de">till.vollmer@codemart.de</A></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></FONT></P><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN></SPAN></SPAN></SPAN></SPAN> </DIV><BR></DIV></BODY></HTML>