X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/c529f79d594c53d3968d464c57ac24a21137dd09..142c15906ae08e559b1337c4816a6c2a0c341e24:/av.h?ds=sidebyside diff --git a/av.h b/av.h index f537d9e..d177122 100644 --- a/av.h +++ b/av.h @@ -1,6 +1,7 @@ /* av.h * - * Copyright (c) 1991-1999, Larry Wall + * Copyright (C) 1991, 1992, 1993, 1995, 1996, 1997, 1998, 1999, + * 2000, 2001, 2002, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -10,13 +11,13 @@ struct xpvav { char* xav_array; /* pointer to first array element */ SSize_t xav_fill; /* Index of last element present */ - SSize_t xav_max; /* Number of elements for which array has space */ + SSize_t xav_max; /* max index for which array has space */ IV xof_off; /* ptr is incremented by offset */ NV xnv_nv; /* numeric value, if any */ MAGIC* xmg_magic; /* magic for scalar array */ HV* xmg_stash; /* class package */ - SV** xav_alloc; /* pointer to malloced string */ + SV** xav_alloc; /* pointer to beginning of C array of SVs */ SV* xav_arylen; U8 xav_flags; }; @@ -32,8 +33,8 @@ struct xpvav { * real if the array needs to be modified in some way. Functions that * modify fake AVs check both flags to call av_reify() as appropriate. * - * Note that the Perl stack has neither flag set. (Thus, items that go - * on the stack are never refcounted.) + * Note that the Perl stack and @DB::args have neither flag set. (Thus, + * items that go on the stack are never refcounted.) * * These internal details are subject to change any time. AV * manipulations external to perl should not care about any of this. @@ -45,6 +46,20 @@ struct xpvav { /* XXX this is not used anywhere */ #define AVf_REUSED 4 /* got undeffed--don't turn old memory into SVs now */ +/* +=head1 Handy Values + +=for apidoc AmU||Nullav +Null AV pointer. + +=head1 Array Manipulation Functions + +=for apidoc Am|int|AvFILL|AV* av +Same as C. Deprecated, use C instead. + +=cut +*/ + #define Nullav Null(AV*) #define AvARRAY(av) ((SV**)((XPVAV*) SvANY(av))->xav_array) @@ -69,3 +84,4 @@ struct xpvav { #define AvFILL(av) ((SvRMAGICAL((SV *) (av))) \ ? mg_size((SV *) av) : AvFILLp(av)) +#define NEGATIVE_INDICES_VAR "NEGATIVE_INDICES"