# HG changeset patch # User Jaroslav Hajek # Date 1237322292 -3600 # Node ID d12f44a5dce38885f8f2a5ab0222f90b1c354b6e # Parent c235a59d30a4a072889f973893914de3f1866aff implement fast octave_value constructor diff -r c235a59d30a4 -r d12f44a5dce3 src/ChangeLog --- a/src/ChangeLog Tue Mar 17 13:43:09 2009 +0100 +++ b/src/ChangeLog Tue Mar 17 21:38:12 2009 +0100 @@ -1,3 +1,9 @@ +2009-03-17 Jaroslav Hajek + + * ov.cc (octave_value::octave_value): Move to ov.h + * ov.h (octave_value::octave_value): Implement fast inline constructor + using a static rep. + 2009-03-15 Jaroslav Hajek * DLD-FUNCTIONS/cellfun.cc (Fcellslices): New DLD function. diff -r c235a59d30a4 -r d12f44a5dce3 src/ov.cc --- a/src/ov.cc Tue Mar 17 13:43:09 2009 +0100 +++ b/src/ov.cc Tue Mar 17 21:38:12 2009 +0100 @@ -474,11 +474,6 @@ return retval; } -octave_value::octave_value (void) - : rep (new octave_base_value ()) -{ -} - octave_value::octave_value (short int i) : rep (new octave_scalar (i)) { diff -r c235a59d30a4 -r d12f44a5dce3 src/ov.h --- a/src/ov.h Tue Mar 17 13:43:09 2009 +0100 +++ b/src/ov.h Tue Mar 17 21:38:12 2009 +0100 @@ -156,7 +156,13 @@ enum magic_colon { magic_colon_t }; - octave_value (void); + octave_value (void) + { + static octave_base_value nil_rep; + rep = &nil_rep; + rep->count++; + } + octave_value (short int i); octave_value (unsigned short int i); octave_value (int i);