Mercurial > octave
diff src/pt-indir.cc @ 2948:56be458e237f
[project @ 1997-05-09 13:37:35 by jwe]
author | jwe |
---|---|
date | Fri, 09 May 1997 13:51:06 +0000 |
parents | 5ed088015839 |
children | dfffbf305468 |
line wrap: on
line diff
--- a/src/pt-indir.cc Fri May 09 13:32:52 1997 +0000 +++ b/src/pt-indir.cc Fri May 09 13:51:06 1997 +0000 @@ -164,33 +164,26 @@ return retval; } -octave_value& +octave_variable_reference tree_indirect_ref::reference (void) { if (is_identifier_only ()) return id->reference (); else { + octave_variable_reference tmp; + if (id) - { - octave_value& tmp = id->reference (); - if (tmp.is_undefined () || ! tmp.is_map ()) - tmp = Octave_map (); - return tmp.struct_elt_ref (nm); - } + tmp = id->reference (); else if (indir) - { - octave_value& tmp = indir->reference (); - if (tmp.is_undefined () || ! tmp.is_map ()) - tmp = Octave_map (); - return tmp.struct_elt_ref (nm); - } + tmp = indir->reference (); else - { - static octave_value foo; - panic_impossible (); - return foo; - } + panic_impossible (); + + if (tmp.is_undefined ()) + tmp.define (Octave_map ()); + + return tmp.struct_elt_ref (nm); } }