summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-11-25 10:27:58 +0000
committerkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-11-25 10:27:58 +0000
commitf8798293daedfc4fed0ae3df33fd120fee7ea07c (patch)
tree10f5ba47c3e53e4d0cc75654928de6f152088d27
parent8d039dd4cf88646f7c9b02d43048d23099ca38eb (diff)
downloadATCD-f8798293daedfc4fed0ae3df33fd120fee7ea07c.tar.gz
Mon Nov 25 04:25:15 2002 Krishnakumar B <kitty@cs.wustl.edu>
-rw-r--r--ACEXML/ChangeLog15
-rw-r--r--ACEXML/compass/Assembly.cpp2
-rw-r--r--ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp16
-rw-r--r--ACEXML/examples/SAXPrint/main.cpp9
-rw-r--r--ACEXML/parser/parser/Parser.cpp36
-rw-r--r--ACEXML/parser/parser/Parser.h4
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_;