diff options
author | kitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-11-25 10:27:58 +0000 |
---|---|---|
committer | kitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-11-25 10:27:58 +0000 |
commit | f8798293daedfc4fed0ae3df33fd120fee7ea07c (patch) | |
tree | 10f5ba47c3e53e4d0cc75654928de6f152088d27 | |
parent | 8d039dd4cf88646f7c9b02d43048d23099ca38eb (diff) | |
download | ATCD-f8798293daedfc4fed0ae3df33fd120fee7ea07c.tar.gz |
Mon Nov 25 04:25:15 2002 Krishnakumar B <kitty@cs.wustl.edu>
-rw-r--r-- | ACEXML/ChangeLog | 15 | ||||
-rw-r--r-- | ACEXML/compass/Assembly.cpp | 2 | ||||
-rw-r--r-- | ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp | 16 | ||||
-rw-r--r-- | ACEXML/examples/SAXPrint/main.cpp | 9 | ||||
-rw-r--r-- | ACEXML/parser/parser/Parser.cpp | 36 | ||||
-rw-r--r-- | ACEXML/parser/parser/Parser.h | 4 |
6 files changed, 60 insertions, 22 deletions
diff --git a/ACEXML/ChangeLog b/ACEXML/ChangeLog index 72386d58f03..a304f29666f 100644 --- a/ACEXML/ChangeLog +++ b/ACEXML/ChangeLog @@ -1,3 +1,18 @@ +Mon Nov 25 04:25:15 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * parser/parser/Parser.cpp (reset): + * parser/parser/Parser.h: + + Fixed a bunch of compilation errors. Removed unnecessary + creation and destroyal of ACEXML_Strings which seems to speed up + the parser quite a bit. + + * examples/SAXPrint/SAXPrint_Handler.cpp: + * examples/SAXPrint/main.cpp: + + Don't report startPrefixMapping() and endPrefixMapping() as they + obstruct the pretty-printing of SAXPrint. They are bogus anyway. + Wed Nov 20 22:58:12 2002 Krishnakumar B <kitty@cs.wustl.edu> * parser/parser/Parser.cpp (parse_char_reference): diff --git a/ACEXML/compass/Assembly.cpp b/ACEXML/compass/Assembly.cpp index 654b1cb80bc..4bb81e53bc2 100644 --- a/ACEXML/compass/Assembly.cpp +++ b/ACEXML/compass/Assembly.cpp @@ -28,4 +28,4 @@ Assembly::get_state() void Assembly::build (void) -{ +{} diff --git a/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp b/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp index 98cede93d72..d3df75a3766 100644 --- a/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp +++ b/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp @@ -63,11 +63,9 @@ ACEXML_SAXPrint_Handler::endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((ACEXML_SAXException)) { - - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event endPrefixMapping (%s) ***************\n"), - prefix)); +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("* Event endPrefixMapping (%s) ***************\n"), +// prefix)); } void @@ -154,10 +152,10 @@ ACEXML_SAXPrint_Handler::startPrefixMapping (const ACEXML_Char * prefix, const ACEXML_Char * uri ACEXML_ENV_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((ACEXML_SAXException)) { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("* Event startPrefixMapping () ***************\n"))); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Prefix = %s, URI = %s\n"), prefix, uri)); +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("* Event startPrefixMapping () ***************\n"))); +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("Prefix = %s, URI = %s\n"), prefix, uri)); } diff --git a/ACEXML/examples/SAXPrint/main.cpp b/ACEXML/examples/SAXPrint/main.cpp index 8cb0865684e..c0d795881f6 100644 --- a/ACEXML/examples/SAXPrint/main.cpp +++ b/ACEXML/examples/SAXPrint/main.cpp @@ -69,7 +69,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) } ACEXML_DefaultHandler *handler = 0; - auto_ptr<ACEXML_DefaultHandler> cleanup_handler (handler); ACEXML_CharStream *stm = 0; ACEXML_FileCharStream *fstm = 0; ACEXML_HttpCharStream *ustm = 0; @@ -125,10 +124,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) ACE_NEW_RETURN (handler, ACEXML_SAXPrint_Handler (name), -1); + auto_ptr<ACEXML_DefaultHandler> cleanup_handler (handler); ACEXML_Parser parser; - ACEXML_InputSource* input = 0; - ACE_NEW_RETURN (input, ACEXML_InputSource (stm), -1); + // ACEXML_InputSource* input = 0; + ACEXML_InputSource input (stm); parser.setContentHandler (handler); parser.setDTDHandler (handler); @@ -137,7 +137,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) ACEXML_TRY_NEW_ENV { - parser.parse (input ACEXML_ENV_ARG_PARAMETER); + parser.parse (&input ACEXML_ENV_ARG_PARAMETER); ACEXML_TRY_CHECK; } ACEXML_CATCH (ACEXML_SAXException, ex) @@ -146,6 +146,5 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n"))); } ACEXML_ENDTRY; - delete handler; return 0; } diff --git a/ACEXML/parser/parser/Parser.cpp b/ACEXML/parser/parser/Parser.cpp index b84d8d01a8b..5ab019ed062 100644 --- a/ACEXML/parser/parser/Parser.cpp +++ b/ACEXML/parser/parser/Parser.cpp @@ -284,6 +284,7 @@ ACEXML_Parser::parse_doctypedecl (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { this->ref_state_ = ACEXML_ParserInt::IN_INT_DTD; ACEXML_Char nextch = this->skip_whitespace (); @@ -338,6 +339,7 @@ ACEXML_Parser::parse_internal_dtd (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { this->ref_state_ = ACEXML_ParserInt::IN_EXT_DTD; ACEXML_Char* publicId = 0; @@ -388,6 +390,7 @@ ACEXML_Parser::parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_external_subset (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { this->ref_state_ = ACEXML_ParserInt::IN_EXT_DTD; this->external_subset_ = 1; @@ -443,6 +446,7 @@ ACEXML_Parser::parse_external_subset (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char ch = this->get (); if (ch != '[') @@ -501,6 +505,7 @@ ACEXML_Parser::parse_conditional_section (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char nextch = this->skip_whitespace(); int count = 0; @@ -546,6 +551,7 @@ ACEXML_Parser::parse_ignoresect (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char nextch = this->skip_whitespace(); do { @@ -604,6 +610,7 @@ ACEXML_Parser::parse_includesect (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_markup_decl (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char nextch = this->peek (); switch (nextch) @@ -662,6 +669,7 @@ int ACEXML_Parser::parse_external_id (ACEXML_Char *&publicId, ACEXML_Char *&systemId ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { publicId = systemId = 0; ACEXML_Char nextch = this->get (); @@ -922,6 +930,7 @@ int ACEXML_Parser::parse_content (const ACEXML_Char* startname, const ACEXML_Char* ns_uri, const ACEXML_Char* ns_lname ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char *cdata; size_t cdata_length = 0; @@ -1089,6 +1098,7 @@ ACEXML_Parser::parse_content (const ACEXML_Char* startname, int ACEXML_Parser::parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { if (this->parse_token (ACE_TEXT ("[CDATA[")) < 0) { @@ -1131,6 +1141,7 @@ ACEXML_Parser::parse_cdata (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char nextch; @@ -1295,6 +1306,7 @@ ACEXML_Parser::parse_entity_decl (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_attlist_decl (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { if (this->parse_token (ACE_TEXT ("ATTLIST")) < 0) { @@ -1423,6 +1435,7 @@ ACEXML_Parser::parse_attname (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { // DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue) ACEXML_Char nextch = this->peek (); @@ -1498,6 +1511,7 @@ ACEXML_Parser::parse_defaultdecl (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char ch = this->get(); switch (ch) @@ -1619,6 +1633,7 @@ ACEXML_Parser::parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL) */ int ACEXML_Parser::parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char nextch = this->peek(); switch (nextch) @@ -1741,6 +1756,7 @@ ACEXML_Parser::parse_atttype (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { if (this->parse_token (ACE_TEXT ("NOTATION")) < 0) { @@ -1826,6 +1842,7 @@ ACEXML_Parser::parse_notation_decl (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_element_decl (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { if (this->parse_token (ACE_TEXT ("LEMENT")) < 0) { @@ -1900,6 +1917,7 @@ ACEXML_Parser::parse_element_decl (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { this->get (); // consume the '(' this->check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_PARAMETER); @@ -1952,6 +1970,7 @@ ACEXML_Parser::parse_children_definition (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_child (int skip_open_paren ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { // Conditionally consume the open paren. if (skip_open_paren == 0 && this->get () != '(') @@ -2157,6 +2176,7 @@ ACEXML_Parser::parse_reference_name (void) int ACEXML_Parser::parse_attvalue (ACEXML_Char *&str ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char quote = this->get (); if (quote != '\'' && quote != '"') // Not a quoted string. @@ -2238,6 +2258,7 @@ ACEXML_Parser::parse_attvalue (ACEXML_Char *&str ACEXML_ENV_ARG_DECL) int ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char* replace = this->parse_reference_name (); if (replace == 0) @@ -2300,7 +2321,7 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL) } // [WFC: No Recursion] - ACEXML_String ref_name (replace); + ACEXML_Char* ref_name = replace; int present = this->GE_reference_.insert (ref_name); if (present == 1 || present == -1) { @@ -2374,6 +2395,7 @@ ACEXML_Parser::parse_entity_reference (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_Char* replace = this->parse_reference_name (); if (replace == 0) @@ -2410,7 +2432,7 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL) } // [WFC: No Recursion] - ACEXML_String ref_name (replace); + ACEXML_Char* ref_name = replace; int present = this->PE_reference_.insert (ref_name); if (present == 1 || present == -1) { @@ -2517,6 +2539,7 @@ ACEXML_Parser::parse_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL) int ACEXML_Parser::parse_entity_value (ACEXML_Char *&str ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_ParserInt::ReferenceState temp = this->ref_state_; ACEXML_Char quote = this->get (); @@ -2764,6 +2787,7 @@ ACEXML_Parser::prefix_mapping (const ACEXML_Char* prefix, const ACEXML_Char* uri, const ACEXML_Char* name, int start ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { if (this->namespaces_) { @@ -2845,7 +2869,7 @@ ACEXML_Parser::pop_context (int GE_ref ACEXML_ENV_ARG_DECL) ACEXML_ENV_ARG_PARAMETER); ACEXML_CHECK_RETURN (-1); } - ACEXML_String reference; + ACEXML_Char* reference = 0; if (GE_ref && this->GE_reference_.size() > 0) { if (this->GE_reference_.pop (reference) < 0) @@ -2962,6 +2986,7 @@ ACEXML_Parser::setProperty (const ACEXML_Char *name, void ACEXML_Parser::error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_SAXParseException* exception = 0; ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg)); @@ -2974,6 +2999,7 @@ ACEXML_Parser::error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) void ACEXML_Parser::warning (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_SAXParseException* exception = 0; ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg)); @@ -2985,6 +3011,7 @@ ACEXML_Parser::warning (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) void ACEXML_Parser::fatal_error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)) { ACEXML_SAXParseException* exception = 0; ACE_NEW_NORETURN (exception, ACEXML_SAXParseException (msg)); @@ -3217,8 +3244,7 @@ ACEXML_Parser::reset (void) { if (this->ctx_stack_.pop (this->current_) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("Mismatched push/pop of Context stack"))); - delete this->current_; - ACEXML_String temp; + ACEXML_Char* temp = 0; while (this->GE_reference_.pop (temp) != -1) ; while (this->PE_reference_.pop (temp) != -1) diff --git a/ACEXML/parser/parser/Parser.h b/ACEXML/parser/parser/Parser.h index 40d90258acf..c5c01bac0d8 100644 --- a/ACEXML/parser/parser/Parser.h +++ b/ACEXML/parser/parser/Parser.h @@ -821,10 +821,10 @@ private: * */ /// Set used to hold the general entity references that are active. - ACE_Unbounded_Stack<ACEXML_String> GE_reference_; + ACE_Unbounded_Stack<ACEXML_Char*> GE_reference_; /// Set used to hold the parameter entity references that are active. - ACE_Unbounded_Stack<ACEXML_String> PE_reference_; + ACE_Unbounded_Stack<ACEXML_Char*> PE_reference_; /// Obstack used by the parser to hold all the strings parsed ACE_Obstack_T<ACEXML_Char> obstack_; |