Improve example code
[p5sagit/p5-mst-13.2.git] / pod / perlclib.pod
index e89a67a..f676842 100644 (file)
@@ -99,8 +99,8 @@ There is no equivalent to C<fgets>; one should use C<sv_gets> instead:
 
     Instead Of:                        Use:
 
-    t* p = malloc(n)                   New(id, p, n, t)
-    t* p = calloc(n, s)                Newz(id, p, n, t)
+    t* p = malloc(n)                   Newx(id, p, n, t)
+    t* p = calloc(n, s)                Newxz(id, p, n, t)
     p = realloc(p, n)                  Renew(p, n, t)
     memcpy(dst, src, n)                Copy(src, dst, n, t)
     memmove(dst, src, n)               Move(src, dst, n, t)
@@ -132,15 +132,18 @@ instead of raw C<char *> strings:
 Note also the existence of C<sv_catpvf> and C<sv_vcatpvfn>, combining
 concatenation with formatting.
 
-Sometimes instead of zeroing the allocated heap by using Newz() you
+Sometimes instead of zeroing the allocated heap by using Newxz() you
 should consider "poisoning" the data.  This means writing a bit
 pattern into it that should be illegal as pointers (and floating point
 numbers), and also hopefully surprising enough as integers, so that
 any code attempting to use the data without forethought will break
 sooner rather than later.  Poisoning can be done using the Poison()
-macro, which has similar arguments as Zero():
+macros, which have similar arguments as Zero():
 
-    Poison(dst, n, t)
+    PoisonWith(dst, n, t, b)    scribble memory with byte b
+    PoisonNew(dst, n, t)        equal to PoisonWith(dst, n, t, 0xAB)
+    PoisonFree(dst, n, t)       equal to PoisonWith(dst, n, t, 0xEF)
+    Poison(dst, n, t)           equal to PoisonFree(dst, n, t)
 
 =head2 Character Class Tests