Version française
Home     About     Download     Resources     Contact us    
Browse thread
Interfaçage C/CAML
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Markus Mottl <mottl@m...>
Subject: Re: Interfaçage_C/CAML
[Francais] (Excusez-moi mon francais faible)

On Thu, 10 Aug 2000, Nicolas Joliot wrote:
> Lorsqu'elles sont appelées séparément, je peux afficher les resulats
> sans problème, mais lorsque les deux sont appelées successivement et que
> j'essaye d'afficher le tableau de floatants, j'ai systématiquement un
> "Bus Error".

Je ne suis pas sur, mais ca peut-etre un problem entre l'interface de C et
le GC...

> - déclaration : CAMLlocal1(tableau_float)
> - allocation : tableau_float=alloc(nb_element*2,Double_array_tag)
> - Utilisation :Store_double_field(tableau_float,i,floatant_a_renvoyer)
> _ retour sous CAML par CAMLreturn

Si je le comprends bien, le problem c'est l'utilisation du
"Store_double_field". La solution dans ce cas serait d'essayer le macro
"Double_field" en place de l'autre macro.

C'est souvant un source des erreurs - peut-etre on pourrait changer le nom
de "Store_double_field"? Il me semble que la plupart des programmeurs
soient confuses par "Store"...

"Store_..." ne doit etre utilise que avec des "blocs structures", ou il
sont obligatoirs.

Amicalement,
Markus Mottl

---------------------------------------------------------------------------

[English]

It seems that a common bug has struck again: using "Store_{whatever}" in
C-interfaces is only allowed (and then mandatory) with structured blocks.
Using it for anything else may crash the GC.

Maybe we could change the names of the "Store_..."-macros so that people
don't mistakenly believe that these are generally the right ones to "store"
values?  Something like "Store_Block_..." or similar (less verbose)?

Best regards,
Markus Mottl

-- 
Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl