Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] roots.c -- oldify_local_roots
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Art Yerkes <ayerkes@g...>
Subject: [Caml-list] roots.c -- oldify_local_roots
In oldify_local_roots, on line 137, there is an assumption
that no frame_descriptor is NULL.  For the kernel port, I
put a NULL check in here because I was panicing in the 
d->retaddr dereference.  If I understand correctly, it is
'alright' for me to put a null check in here, because ordinarily
the elements of frame_descriptor are filled with values from
caml_frametable, which seems to be generated at compile time.
Remember that there is a rather odd compilation line that makes
this go, which I admit is probably to blame for making the rest
work the wrong way, but I am interested in understanding the 
process of oldify_local_roots a bit better, including the role
of the frame_descriptors, which seem to point (if I am correct)
to the stack frames used by caml functions.

Do I understand this correctly?  A null frame_descriptor seems to
me to indicate a frame created by an improperly wrapped call.
(no CAMLparam(n)).  Does this really harm anything though?
-- 
#define ENOTSUP      48      /* Operation not supported                */
#define ENOTKANSTOTO 49      /* Not in kansas anymore, Toto            */
#define EBADE        50      /* Invalid exchange                       */



-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr