1
# Copyright (C) 2009 Sun Microsystems, Inc. All rights reserved.
2
# Use is subject to license terms.
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; version 2 of the License.
8
# This program is distributed in the hope that it will be useful, but
9
# WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
# General Public License for more details.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
18
package GenTest::Stack::Stack;
25
use GenTest::Stack::StackFrame;
28
use constant FRAME_NO => 0;
29
use constant FRAMES => 1;
36
my $stack = $class->SUPER::new({}, @_);
38
$stack->[FRAME_NO] = 0;
44
return $_[0]->[FRAME_NO];
50
if ($self->_current() > 0) {
51
$arg = $self->get("arg") if defined $self->get("arg");
54
$self->[$self->[FRAME_NO]]=GenTest::Stack::StackFrame->new();
55
$self->set("arg",$arg) if defined $arg;
61
my ($self, $name, $value) = @_;
63
$self->[$self->_current()]->set($name,$value);
69
my ($self, $name, $value) = @_;
71
return $self->[$self->_current()]->get($name);
76
my ($self,$result) = @_;
78
## Place the result on the callers frame
79
$self->set("result",$result) if $self->[FRAME_NO] > 0;