diff --git a/mozilla/htmlparser/src/nsIParser.h b/mozilla/htmlparser/src/nsIParser.h
index cc688a2a192..58f03895ecd 100644
--- a/mozilla/htmlparser/src/nsIParser.h
+++ b/mozilla/htmlparser/src/nsIParser.h
@@ -83,7 +83,7 @@ enum eStreamState {eNone,eOnStart,eOnDataAvail,eOnStop};
class nsITagStack {
public:
virtual void Push(PRUnichar* aTag)=0;
- virtual PRUnichar* Pop(PRUnichar* aTag)=0;
+ virtual PRUnichar* Pop(void)=0;
virtual PRUnichar* TagAt(PRUint32 anIndex)=0;
virtual PRUint32 GetSize(void)=0;
};
@@ -147,6 +147,13 @@ class nsIParser : public nsISupports {
*/
virtual void SetDocumentCharset(nsString& aCharset, nsCharsetSource aSource)=0;
+ /**
+ * Call this to get a newly constructed tagstack
+ * @update gess 5/05/99
+ * @param aTagStack is an out parm that will contain your result
+ * @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
+ */
+ virtual nsresult CreateTagStack(nsITagStack** aTagStack)=0;
/******************************************************************************************
@@ -198,23 +205,14 @@ class nsIParser : public nsISupports {
#define NS_ERROR_HTMLPARSER_BADURL NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1005)
#define NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1006)
#define NS_ERROR_HTMLPARSER_INTERRUPTED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1007)
-#define NS_ERROR_HTMLPARSER_BADTOKENIZER NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
-#define NS_ERROR_HTMLPARSER_BADATTRIBUTE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1009)
-#define NS_ERROR_HTMLPARSER_UNRESOLVEDDTD NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1010)
-#define NS_ERROR_HTMLPARSER_MISPLACED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1011)
+#define NS_ERROR_HTMLPARSER_BLOCK NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
+#define NS_ERROR_HTMLPARSER_BADTOKENIZER NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1009)
+#define NS_ERROR_HTMLPARSER_BADATTRIBUTE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1010)
+#define NS_ERROR_HTMLPARSER_UNRESOLVEDDTD NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1011)
+#define NS_ERROR_HTMLPARSER_MISPLACED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1012)
+#define NS_ERROR_HTMLPARSER_MEMORYFAILURE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1013)
-
-/**
- * Return codes for parsing routines.
- * @update vidur 12/11/98
- *
- * NS_ERROR_HTMLPARSER_BLOCK indicates that the parser should
- * block further parsing until it gets a Unblock() method call.
- * NS_ERROR_HTMLPARSER_CONTINUE indicates that the parser should
- * continue parsing
- */
-#define NS_ERROR_HTMLPARSER_BLOCK NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
-#define NS_ERROR_HTMLPARSER_CONTINUE NS_OK
+#define NS_ERROR_HTMLPARSER_CONTINUE NS_OK
const PRInt32 kEOF = NS_ERROR_HTMLPARSER_EOF;
diff --git a/mozilla/htmlparser/src/nsParser.cpp b/mozilla/htmlparser/src/nsParser.cpp
index d198197c234..f0be71ab691 100644
--- a/mozilla/htmlparser/src/nsParser.cpp
+++ b/mozilla/htmlparser/src/nsParser.cpp
@@ -128,13 +128,51 @@ public:
nsString nsParser::gHackMetaCharset = "";
nsString nsParser::gHackMetaCharsetURL = "";
-//----------------------------------------
+//-------------------------------------------------------------------------
CSharedParserObjects& GetSharedObjects() {
static CSharedParserObjects gSharedParserObjects;
return gSharedParserObjects;
}
+
+/**********************************************************************************
+ This class is used as an interface between an external agent (like the DOM) and
+ the parser. It will contain a stack full of tagnames, which is used in our
+ parser/paste API's.
+ **********************************************************************************/
+
+class nsTagStack : public nsITagStack {
+public:
+ nsTagStack() : nsITagStack(), mTags(0) {
+ }
+
+ virtual void Push(PRUnichar* aTag){
+ mTags.Push(aTag);
+ }
+
+ virtual PRUnichar* Pop(void){
+ PRUnichar* result=(PRUnichar*)mTags.Pop();
+ return result;
+ }
+
+ virtual PRUnichar* TagAt(PRUint32 anIndex){
+ PRUnichar* result=0;
+ if(anIndex<(PRUint32)mTags.GetSize())
+ result=(PRUnichar*)mTags.ObjectAt(anIndex);
+ return result;
+ }
+
+ virtual PRUint32 GetSize(void){
+ return mTags.GetSize();
+ }
+
+ nsDeque mTags; //will hold a deque of prunichars...
+};
+
+
+//-------------------------------------------------------------------------
+
/**
* default constructor
*
@@ -1135,32 +1173,15 @@ void nsParser::DebugDumpSource(ostream& aStream) {
}
}
-
-/**********************************************************************************
- This class is used as an interface between an external agent (like the DOM) and
- the parser. It will contain a stack full of tagnames, which is used in our
- parser/paste API's.
- **********************************************************************************/
-
-nsTagStack::nsTagStack() : nsITagStack(), mTags(0) {
-}
-
-void nsTagStack::Push(PRUnichar* aTag) {
- mTags.Push(aTag);
-}
-
-PRUnichar* nsTagStack::Pop(void) {
- PRUnichar* result=(PRUnichar*)mTags.Pop();
- return result;
-}
-
-PRUnichar* nsTagStack::TagAt(PRUint32 anIndex) {
- PRUnichar* result=0;
- if(anIndex<(PRUint32)mTags.GetSize())
- result=(PRUnichar*)mTags.ObjectAt(anIndex);
- return result;
-}
-
-PRUint32 nsTagStack::GetSize(void) {
- return mTags.GetSize();
+/**
+ * Call this to get a newly constructed tagstack
+ * @update gess 5/05/99
+ * @param aTagStack is an out parm that will contain your result
+ * @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
+ */
+nsresult nsParser::CreateTagStack(nsITagStack** aTagStack){
+ *aTagStack=new nsTagStack();
+ if(*aTagStack)
+ return NS_OK;
+ return NS_ERROR_HTMLPARSER_MEMORYFAILURE;
}
diff --git a/mozilla/htmlparser/src/nsParser.h b/mozilla/htmlparser/src/nsParser.h
index e88044451bc..1138c2dff20 100644
--- a/mozilla/htmlparser/src/nsParser.h
+++ b/mozilla/htmlparser/src/nsParser.h
@@ -251,6 +251,14 @@ friend class CTokenHandler;
*/
virtual nsITokenizer* GetTokenizer(void);
+ /**
+ * Call this to get a newly constructed tagstack
+ * @update gess 5/05/99
+ * @param aTagStack is an out parm that will contain your result
+ * @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
+ */
+ virtual nsresult CreateTagStack(nsITagStack** aTagStack);
+
/*
* The following two should be removed once our Meta Charset work complete
*/
@@ -346,18 +354,5 @@ protected:
};
-class nsTagStack : public nsITagStack {
-public:
- nsTagStack();
- virtual void Push(PRUnichar* aTag);
- virtual PRUnichar* Pop(void);
- virtual PRUnichar* TagAt(PRUint32 anIndex);
- virtual PRUint32 GetSize(void);
-
- nsDeque mTags; //will hold a deque of prunichars...
-};
-
-
-
#endif
diff --git a/mozilla/parser/htmlparser/src/nsIParser.h b/mozilla/parser/htmlparser/src/nsIParser.h
index cc688a2a192..58f03895ecd 100644
--- a/mozilla/parser/htmlparser/src/nsIParser.h
+++ b/mozilla/parser/htmlparser/src/nsIParser.h
@@ -83,7 +83,7 @@ enum eStreamState {eNone,eOnStart,eOnDataAvail,eOnStop};
class nsITagStack {
public:
virtual void Push(PRUnichar* aTag)=0;
- virtual PRUnichar* Pop(PRUnichar* aTag)=0;
+ virtual PRUnichar* Pop(void)=0;
virtual PRUnichar* TagAt(PRUint32 anIndex)=0;
virtual PRUint32 GetSize(void)=0;
};
@@ -147,6 +147,13 @@ class nsIParser : public nsISupports {
*/
virtual void SetDocumentCharset(nsString& aCharset, nsCharsetSource aSource)=0;
+ /**
+ * Call this to get a newly constructed tagstack
+ * @update gess 5/05/99
+ * @param aTagStack is an out parm that will contain your result
+ * @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
+ */
+ virtual nsresult CreateTagStack(nsITagStack** aTagStack)=0;
/******************************************************************************************
@@ -198,23 +205,14 @@ class nsIParser : public nsISupports {
#define NS_ERROR_HTMLPARSER_BADURL NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1005)
#define NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1006)
#define NS_ERROR_HTMLPARSER_INTERRUPTED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1007)
-#define NS_ERROR_HTMLPARSER_BADTOKENIZER NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
-#define NS_ERROR_HTMLPARSER_BADATTRIBUTE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1009)
-#define NS_ERROR_HTMLPARSER_UNRESOLVEDDTD NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1010)
-#define NS_ERROR_HTMLPARSER_MISPLACED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1011)
+#define NS_ERROR_HTMLPARSER_BLOCK NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
+#define NS_ERROR_HTMLPARSER_BADTOKENIZER NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1009)
+#define NS_ERROR_HTMLPARSER_BADATTRIBUTE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1010)
+#define NS_ERROR_HTMLPARSER_UNRESOLVEDDTD NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1011)
+#define NS_ERROR_HTMLPARSER_MISPLACED NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1012)
+#define NS_ERROR_HTMLPARSER_MEMORYFAILURE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1013)
-
-/**
- * Return codes for parsing routines.
- * @update vidur 12/11/98
- *
- * NS_ERROR_HTMLPARSER_BLOCK indicates that the parser should
- * block further parsing until it gets a Unblock() method call.
- * NS_ERROR_HTMLPARSER_CONTINUE indicates that the parser should
- * continue parsing
- */
-#define NS_ERROR_HTMLPARSER_BLOCK NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_HTMLPARSER,1008)
-#define NS_ERROR_HTMLPARSER_CONTINUE NS_OK
+#define NS_ERROR_HTMLPARSER_CONTINUE NS_OK
const PRInt32 kEOF = NS_ERROR_HTMLPARSER_EOF;
diff --git a/mozilla/parser/htmlparser/src/nsParser.cpp b/mozilla/parser/htmlparser/src/nsParser.cpp
index d198197c234..f0be71ab691 100644
--- a/mozilla/parser/htmlparser/src/nsParser.cpp
+++ b/mozilla/parser/htmlparser/src/nsParser.cpp
@@ -128,13 +128,51 @@ public:
nsString nsParser::gHackMetaCharset = "";
nsString nsParser::gHackMetaCharsetURL = "";
-//----------------------------------------
+//-------------------------------------------------------------------------
CSharedParserObjects& GetSharedObjects() {
static CSharedParserObjects gSharedParserObjects;
return gSharedParserObjects;
}
+
+/**********************************************************************************
+ This class is used as an interface between an external agent (like the DOM) and
+ the parser. It will contain a stack full of tagnames, which is used in our
+ parser/paste API's.
+ **********************************************************************************/
+
+class nsTagStack : public nsITagStack {
+public:
+ nsTagStack() : nsITagStack(), mTags(0) {
+ }
+
+ virtual void Push(PRUnichar* aTag){
+ mTags.Push(aTag);
+ }
+
+ virtual PRUnichar* Pop(void){
+ PRUnichar* result=(PRUnichar*)mTags.Pop();
+ return result;
+ }
+
+ virtual PRUnichar* TagAt(PRUint32 anIndex){
+ PRUnichar* result=0;
+ if(anIndex<(PRUint32)mTags.GetSize())
+ result=(PRUnichar*)mTags.ObjectAt(anIndex);
+ return result;
+ }
+
+ virtual PRUint32 GetSize(void){
+ return mTags.GetSize();
+ }
+
+ nsDeque mTags; //will hold a deque of prunichars...
+};
+
+
+//-------------------------------------------------------------------------
+
/**
* default constructor
*
@@ -1135,32 +1173,15 @@ void nsParser::DebugDumpSource(ostream& aStream) {
}
}
-
-/**********************************************************************************
- This class is used as an interface between an external agent (like the DOM) and
- the parser. It will contain a stack full of tagnames, which is used in our
- parser/paste API's.
- **********************************************************************************/
-
-nsTagStack::nsTagStack() : nsITagStack(), mTags(0) {
-}
-
-void nsTagStack::Push(PRUnichar* aTag) {
- mTags.Push(aTag);
-}
-
-PRUnichar* nsTagStack::Pop(void) {
- PRUnichar* result=(PRUnichar*)mTags.Pop();
- return result;
-}
-
-PRUnichar* nsTagStack::TagAt(PRUint32 anIndex) {
- PRUnichar* result=0;
- if(anIndex<(PRUint32)mTags.GetSize())
- result=(PRUnichar*)mTags.ObjectAt(anIndex);
- return result;
-}
-
-PRUint32 nsTagStack::GetSize(void) {
- return mTags.GetSize();
+/**
+ * Call this to get a newly constructed tagstack
+ * @update gess 5/05/99
+ * @param aTagStack is an out parm that will contain your result
+ * @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
+ */
+nsresult nsParser::CreateTagStack(nsITagStack** aTagStack){
+ *aTagStack=new nsTagStack();
+ if(*aTagStack)
+ return NS_OK;
+ return NS_ERROR_HTMLPARSER_MEMORYFAILURE;
}
diff --git a/mozilla/parser/htmlparser/src/nsParser.h b/mozilla/parser/htmlparser/src/nsParser.h
index e88044451bc..1138c2dff20 100644
--- a/mozilla/parser/htmlparser/src/nsParser.h
+++ b/mozilla/parser/htmlparser/src/nsParser.h
@@ -251,6 +251,14 @@ friend class CTokenHandler;
*/
virtual nsITokenizer* GetTokenizer(void);
+ /**
+ * Call this to get a newly constructed tagstack
+ * @update gess 5/05/99
+ * @param aTagStack is an out parm that will contain your result
+ * @return NS_OK if successful, or NS_HTMLPARSER_MEMORY_ERROR on error
+ */
+ virtual nsresult CreateTagStack(nsITagStack** aTagStack);
+
/*
* The following two should be removed once our Meta Charset work complete
*/
@@ -346,18 +354,5 @@ protected:
};
-class nsTagStack : public nsITagStack {
-public:
- nsTagStack();
- virtual void Push(PRUnichar* aTag);
- virtual PRUnichar* Pop(void);
- virtual PRUnichar* TagAt(PRUint32 anIndex);
- virtual PRUint32 GetSize(void);
-
- nsDeque mTags; //will hold a deque of prunichars...
-};
-
-
-
#endif