comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Dowie <martin@dowie-cs.demon.co.uk>
Subject: Generics and parameter modes
Date: 1999/08/16
Date: 1999-08-16T00:00:00+00:00	[thread overview]
Message-ID: <37B85F88.C87638C4@dowie-cs.demon.co.uk> (raw)

i have an instance of a package similar to the generic listed below.
when calling the 'size' routine the actual parameter is passed by copy
and not by reference as i had expected. this is really annoying as the
data object is a few hundred kbytes in size! is there anything in Ada95
that allows/requires this?

generic
    type an_item is private;
    maximum_number_of_items : positive;
package generic_list is
    subtype a_number_of_items is natural range 0 ..
maximum_number_of_items;
    subtype an_item_index is natural range 1 .. maximum_number_of_items;

    type a_list is private;
    -- Lots of other stuff...
    function size (list : in a_list) return a_number_of_items;
private
    type an_array_of_items is array (an_item_index) of an_item;
    type a_list is record
        current_size, current_item : a_number_of_items;
        items : an_array_of_items;
    end record;
end generic_list;

the type used in the declaration is a variant record which it self
contains variant fields within a number of the variant branches (approx.
300 bytes storage required).

i'm using Rational Apex v3 and have tried a mini version at home (using
the above) and ObjectAda seems to pass it by reference (not 100% on this
as my Intel assembler knowledge is zilch!).





             reply	other threads:[~1999-08-16  0:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-16  0:00 Martin Dowie [this message]
1999-08-17  0:00 ` Generics and parameter modes Tucker Taft
1999-08-21  0:00   ` Martin Dowie
1999-08-21  0:00     ` Robert Dewar
1999-08-21  0:00       ` Martin Dowie
1999-08-17  0:00 ` Matthew Heaney
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox