Mercurial > hg > octave-lyh
diff src/dynamic-ld.cc @ 2926:66ef74ee5d9f
[project @ 1997-05-05 03:20:52 by jwe]
author | jwe |
---|---|
date | Mon, 05 May 1997 03:40:21 +0000 |
parents | 6be07b0aa4f8 |
children | 1b47dd00a831 |
line wrap: on
line diff
--- a/src/dynamic-ld.cc +++ b/src/dynamic-ld.cc @@ -181,33 +181,43 @@ #endif -static octave_dynamic_loader * -make_dynamic_loader (void) +octave_dynamic_loader *octave_dynamic_loader::instance = 0; + +bool +octave_dynamic_loader::instance_ok (void) +{ + bool retval = true; + + if (! instance) + make_dynamic_loader (); + + if (! instance) + { + error ("unable to create command history object!"); + + retval = false; + } + + return retval; +} + +void +octave_dynamic_loader::make_dynamic_loader (void) { #if defined (WITH_DL) - return new octave_dlopen_dynamic_loader (); + instance = new octave_dlopen_dynamic_loader (); #elif defined (WITH_SHL) - return new octave_sh_load_dynamic_loader (); + instance = new octave_sh_load_dynamic_loader (); #else - return new octave_dynamic_loader (); + instance = new octave_dynamic_loader (); #endif } -octave_dynamic_loader *octave_dynamic_loader::instance = 0; - -octave_dynamic_loader::octave_dynamic_loader (void) -{ -} - -octave_dynamic_loader::~octave_dynamic_loader (void) -{ -} - int octave_dynamic_loader::load_fcn_from_dot_oct_file (const string& fcn_name) { - if (! instance) - instance = make_dynamic_loader (); + if (! instance_ok ()) + make_dynamic_loader (); int retval = 0;