diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-05 12:15:00 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-05 12:15:00 +0000 |
commit | 30ce0fb1ef9da4bbbd847a22e8cc08c1c3a18a5b (patch) | |
tree | 457f3c52936ca67c4fa5aaea2ff8a0a2be5c94d2 /gcc/melt-runtime.c | |
parent | 73578a4f9db9ab46f5debf52e2f214ce831d490e (diff) | |
download | gcc-30ce0fb1ef9da4bbbd847a22e8cc08c1c3a18a5b.tar.gz |
2009-09-05 Basile Starynkevitch <basile@starynkevitch.net>
* gcc/melt-runtime.c (do_initial_command): return eearly if no mode
string.
(load_melt_modules_and_do_command): likewise.
(melt_really_initialize): likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@151447 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/melt-runtime.c')
-rw-r--r-- | gcc/melt-runtime.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/gcc/melt-runtime.c b/gcc/melt-runtime.c index 5b594edb315..c5f685a9a5b 100644 --- a/gcc/melt-runtime.c +++ b/gcc/melt-runtime.c @@ -7439,6 +7439,12 @@ do_initial_command (melt_ptr_t modata_p) debugeprintf ("do_initial_command argstr %s", argstr); debugeprintf ("do_initial_command argliststr %s", argliststr); debugeprintf ("do_initial_command secondargstr %s", secondargstr); + if (!modstr || !modstr[0]) + { + debugeprintf("do_initial_command do nothing without mode modata %p", + modatav); + goto end; + } if (!MELT_PREDEF (INITIAL_SYSTEM_DATA)) { error("MELT cannot execute initial command mode %s without INITIAL_SYSTEM_DATA", modstr); @@ -7563,6 +7569,12 @@ load_melt_modules_and_do_command (void) inistr = melt_argument ("init"); debugeprintf ("load_melt_modules_and_do_command start init=%s command=%s", inistr, modstr); + if (!modstr || !modstr[0]) + { + debugeprintf ("load_melt_modules_and_do_command do nothing without mode (inistr=%s)", + inistr); + goto end; + } /* if there is no -fmelt-init use the default list of modules */ if (!inistr || !inistr[0]) { @@ -7684,6 +7696,7 @@ load_melt_modules_and_do_command (void) debugeprintf ("load_melt_modules_and_do_command done modules %s command %s", inistr, modstr); + end: MELT_EXITFRAME (); #undef modatv #undef dumpv @@ -7817,6 +7830,12 @@ melt_really_initialize (const char* pluginame) flag_melt_debug = 1; } #endif + if (!modstr || *modstr=='\0') + { + debugeprintf ("melt_really_initialize return immediately since no mode (inistr=%s)", + inistr); + return; + } if (melt_minorsizekilow == 0) { const char* minzstr = melt_argument ("minor-zone"); @@ -7906,9 +7925,13 @@ static void do_finalize_melt (void) { static int didfinal; + const char* modstr = NULL; MELT_ENTERFRAME (1, NULL); if (didfinal++>0) goto end; + modstr = melt_argument ("mode"); + if (!modstr) + goto end; #define finclosv curfram__.varptr[0] finclosv = melt_get_inisysdata (FSYSDAT_EXIT_FINALIZER); if (melt_magic_discr ((melt_ptr_t) finclosv) == OBMAG_CLOSURE) @@ -7986,7 +8009,7 @@ plugin_init(struct plugin_name_args* plugin_info, void melt_initialize (void) { - melt_really_initialize ("__MELT/buitin"); + melt_really_initialize ("/_MELT/_buitin"); debugeprintf ("end of melt_initialize [builtin MELT] meltruntime %s", __DATE__); } #endif |