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 | af89461c2841aae8b14cf43575147c84a12b240a (patch) | |
tree | 1e7d92f6a2713a4d1e0c6eed3f631870fa314583 /ace/Service_Config.cpp | |
parent | dc1d5d24fea78bffa5b0c94cd48d9994bd63945c (diff) | |
download | ATCD-af89461c2841aae8b14cf43575147c84a12b240a.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 |