Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] alloc_final and local value variables
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Neil Conway <neilc@s...>
Subject: [Caml-list] alloc_final and local value variables
In Chapter 12 of the O'Reilly book on Ocaml, section "Creating and modifying
Objective CAML values from C", this example code is given for wrapping a
heap-allocated chunk of memory in an Ocaml value:

value create (value s)
{
  value block ;
  block = alloc_final (2, finalize_it,Int_val(s)*sizeof(IntTab),100000) ;
  Field(block,1) = (value) alloc_it(Int_val(s)) ;
  return block ;
}

This code uses a "value" local, but doesn't declare it with one of the
CAMLlocalN variables, as the Ocaml Manual says is necessary (Ocaml Manual,
"Interfacing C with Objective Caml", Section 18.5.1, Rule 2). Is this code
above correct?

Thanks in advance,

Neil

P.S. I'm aware that custom blocks are now available, but alloc_final does
everything I need...

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners