diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1999-09-21 21:04:12 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1999-09-21 21:04:12 +0000 |
commit | e068dbe4f197151c10b86f1cfb298d8bb75cbf23 (patch) | |
tree | 1e7d92f6a2713a4d1e0c6eed3f631870fa314583 /ace/Service_Config.cpp | |
parent | e40de40535e929a8562eb1ceb647122541c5b925 (diff) | |
download | ATCD-e068dbe4f197151c10b86f1cfb298d8bb75cbf23.tar.gz |
ChangeLogTag:Tue Sep 21 15:34:16 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
Diffstat (limited to 'ace/Service_Config.cpp')
-rw-r--r-- | ace/Service_Config.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ace/Service_Config.cpp b/ace/Service_Config.cpp index 83778fa80a1..68d2a96ea55 100644 --- a/ace/Service_Config.cpp +++ b/ace/Service_Config.cpp @@ -365,19 +365,21 @@ ACE_Service_Config::process_directives_i (void) ace_yyerrno = 0; ace_yylineno = 1; - // Use an auto_ptr to make sure that we release this memory - // regardless of how we exit... + ACE_Obstack *oldstack = ace_obstack; + ACE_NEW_RETURN (ace_obstack, ACE_Obstack, -1); - auto_ptr<ACE_Obstack> holder (ace_obstack); - ace_yyparse (); + delete ace_obstack; + ace_obstack = oldstack; + if (ace_yyerrno > 0) { - errno = EINVAL; // This is a hack, better errors should be provided... + // This is a hack, better errors should be provided... + errno = EINVAL; return ace_yyerrno; } else |