[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: heap and stack

"John Persing" <persing@frii.com> writes:

  I think you're getting too complicated. If you have the 'idl
  advanced development guide' of something like that, it has a
  discussion of what constitues an IDL variable. The 'Cliff Notes' on
  it is that the variable is a large descriptor with flags describing
  what the variable is, a Union allowing for the storage of scalars
  and the appropriately constructed structures allowing for the
  storage of dynamically allocated data structures. All variable types
  are accounted for, heap, pointer, object, array, structure and any
  kind of scalar. So there is no need a 'stack', 'temporary' or 'heap'
  variable. They're all just IDL_VARIABLES. Discrimination is made by
  virtue of the flags set within this descriptor.

  See the file $IDL_DIR/idl/external/export.h for the skinny on this.
  Look at the IDL_TYP_* macros, they define the type, and the
  IDL_ALLTYPES union, which stores that data of the variable.  You'll
  see there is a macro defined for pointers and object type variables
  and a flag for 'Heap' variable within the structure. The
  discrimination of whether a variable is temporary, constant, a file,
  a structure or dynamically allocated is made by querying the state
  of the IDL_VARIABLE 'flags' field.

  Still, having said all that, your explanation 'sounds' more 'expert' ;> 
  How are they to know?


> I will present a hypothesis, then a line of evidence, then I will wait for
> somebody else on the group to post a more sensible explanation.
> Hypothesis:
> There are three type of variables:  stack variables, temporary variables,
> and heap variables.  (Plus a fourth type of abstraction of a "variable"
> which stores information about user-defined variable types like structures
> and objects, which we need not worry about here.)  All are of the same
> format:  a structure of metadata that includes a reference to the memory
> location of the first element of the data.  The three forms differ only in
> their metadata.


> --
>          }3 John Persing }3
>  http://www.frii.com/~persing   persing@frii.com
> Half of all Americans earn less than the median income!!!!!!

  Yes, but half earn more. I hope I'm one of them.

William Daffer: 818-354-0161: vapuser@catspaw.jpl.nasa.gov