diff --git a/mozilla/htmlparser/src/CNavDTD.cpp b/mozilla/htmlparser/src/CNavDTD.cpp
index d7564d27800..a2458e86a7b 100644
--- a/mozilla/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/htmlparser/src/CNavDTD.cpp
@@ -103,8 +103,8 @@ static CTokenRecycler gTokenRecycler;
***************************************************************/
class CTagHandlerDeallocator: public nsDequeFunctor{
public:
- virtual void* operator()(void* anObject) {
- nsITagHandler* tagHandler =(nsITagHandler*)anObject;
+ virtual void* operator()(void* aObject) {
+ nsITagHandler* tagHandler = (nsITagHandler*)aObject;
delete tagHandler;
return 0;
}
@@ -115,29 +115,23 @@ public:
check for a Tag name, and setting the current TagHandler when it is reached
***************************************************************/
class CTagFinder: public nsDequeFunctor{
+
public:
- CTagFinder(){mTagName = nsnull;}
- void Initialize(nsAutoString* aTagName) {mTagName = aTagName;}
+ CTagFinder(){}
+ void Initialize(const nsString &aTagName) {mTagName = aTagName;}
virtual ~CTagFinder() {
}
- virtual void* operator()(void* anObject)
- {
- nsITagHandler* thetaghandler;
- nsAutoString *thestring;
-
- //mCurTagHandler = 0;
- thestring = ((nsITagHandler*)anObject)->GetString();
- if( thestring->Equals(*mTagName)){
- //thetaghandler = (nsITagHandler*)anObject;
- return anObject;
- }
+ virtual void* operator()(void* aObject) {
+ nsString* theString = ((nsITagHandler*)aObject)->GetString();
+ if( theString->Equals(mTagName)){
+ return aObject;
+ }
return(0);
- }
+ }
- nsAutoString* mTagName;
- //nsITagHandler* mCurTagHandler;
+ nsAutoString mTagName;
};
/***************************************************************
@@ -151,29 +145,32 @@ public:
CTagHandlerRegister() : mDeallocator(), mTagHandlerDeque(mDeallocator) {
}
- ~CTagHandlerRegister() {
- }
- void RegisterTagHandler(nsAutoString *aTagName,nsITagHandler *aTagHandler){
- aTagHandler->SetString(aTagName);
+ void RegisterTagHandler(nsITagHandler *aTagHandler){
mTagHandlerDeque.Push(aTagHandler);
}
- nsITagHandler* FindTagHandler(nsAutoString* aTagName){
- nsITagHandler *foundhandler = nsnull;
+ nsITagHandler* FindTagHandler(const nsString &aTagName){
+ nsITagHandler* foundHandler = nsnull;
+
mTagFinder.Initialize(aTagName);
mTagHandlerDeque.Begin();
- foundhandler = (nsITagHandler*) mTagHandlerDeque.FirstThat(mTagFinder);
- return foundhandler;
+ foundHandler = (nsITagHandler*) mTagHandlerDeque.FirstThat(mTagFinder);
+ return foundHandler;
}
CTagHandlerDeallocator mDeallocator;
nsDeque mTagHandlerDeque;
CTagFinder mTagFinder;
-
};
+/************************************************************************
+ The CTagHandlerRegister for a CNavDTD.
+ This is where special taghanders for our tags can be managed and called from
+ Note: This can also be attached to some object so it can be refcounted
+ and destroyed if you want this to go away when not imbedded.
+ ************************************************************************/
CTagHandlerRegister gTagHandlerRegister;
@@ -486,11 +483,6 @@ nsresult CNavDTD::DidBuildModel(PRInt32 anErrorCode,PRBool aNotifySink){
nsresult CNavDTD::HandleToken(CToken* aToken){
nsresult result=NS_OK;
- // test and example of finding the tag handler
- //nsAutoString* findstring = new nsAutoString(aToken->GetStringValueXXX());
- //nsITagHandler* taghandler = gTagHandlerRegister.FindTagHandler(findstring);
-
-
if(aToken) {
CHTMLToken* theToken= (CHTMLToken*)(aToken);
eHTMLTokenTypes theType=eHTMLTokenTypes(theToken->GetTokenType());
diff --git a/mozilla/htmlparser/src/nsDTDUtils.h b/mozilla/htmlparser/src/nsDTDUtils.h
index cfa876ba0b9..07c2b879c1b 100644
--- a/mozilla/htmlparser/src/nsDTDUtils.h
+++ b/mozilla/htmlparser/src/nsDTDUtils.h
@@ -150,8 +150,8 @@ protected:
class nsITagHandler {
public:
- virtual void SetString(nsAutoString *aTheString)=0;
- virtual nsAutoString* GetString()=0;
+ virtual void SetString(const nsString &aTheString)=0;
+ virtual nsString* GetString()=0;
virtual PRBool HandleToken(CToken* aToken,nsIDTD* aDTD)=0;
virtual PRBool HandleCapturedTokens(CToken* aToken,nsIDTD* aDTD)=0;
};
diff --git a/mozilla/htmlparser/src/nsTagHandler.h b/mozilla/htmlparser/src/nsTagHandler.h
index 68870a1933e..9ad87bea6a9 100644
--- a/mozilla/htmlparser/src/nsTagHandler.h
+++ b/mozilla/htmlparser/src/nsTagHandler.h
@@ -24,50 +24,61 @@
/**
* MODULE NOTES:
- * @update DC 11/5/98
+ * @update dc 11/20/98
**/
/**
- * This class defines the object that can do special tag handling
+ * This class defines an object that can do special tag handling
*
- * @update DC 11/5/98
+ * @update DC 11/20/98
*/
class nsTagHandler : public nsITagHandler {
-// MEMBERS
public:
nsAutoString mTheTagName;
-
-// METHODS
public:
/**
* Constructor
- * @update dc 11/5/98
+ * @update dc 11/05/98
*/
nsTagHandler() {}
+
+ /**
+ * Destructor
+ * @update dc 11/05/98
+ */
~nsTagHandler() {}
/**
- * SetString
+ * Sets the string (tag) for this nsTagHandler to handle
+ * @update dc 11/19/98
+ * @param aTheString -- The string (tag) associated with this handler
+ * @return VOID
*/
- void SetString(nsAutoString *aTheString) {mTheTagName = *aTheString;}
-
- nsAutoString* GetString() {return &mTheTagName;}
+ void SetString(const nsString &aTheString) {mTheTagName = aTheString;}
/**
- * Handle this token prior to the DTD
+ * Returns the string (tag) handled by this nsTagHandler
+ * @update dc 11/19/98
+ * @return The tagname associated with this class
+ */
+ nsString* GetString() {return &mTheTagName;}
+
+ /**
+ * Handle this tag prior to the DTD
* @update dc 11/5/98
+ * @return A boolean indicating if this token was handled here
*/
virtual PRBool HandleToken(CToken* aToken,nsIDTD* aDTD) {return PR_FALSE;};
/**
- * Handle this token prior to the DTD
+ * Handle this tag prior to the DTD
* @update dc 11/5/98
- * @return ptr to previously set contentsink (usually null)
+ * @return A boolean indicating if this token was handled here
*/
virtual PRBool HandleCapturedTokens(CToken* aToken,nsIDTD* aDTD) {return PR_FALSE;};
diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp
index d7564d27800..a2458e86a7b 100644
--- a/mozilla/parser/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp
@@ -103,8 +103,8 @@ static CTokenRecycler gTokenRecycler;
***************************************************************/
class CTagHandlerDeallocator: public nsDequeFunctor{
public:
- virtual void* operator()(void* anObject) {
- nsITagHandler* tagHandler =(nsITagHandler*)anObject;
+ virtual void* operator()(void* aObject) {
+ nsITagHandler* tagHandler = (nsITagHandler*)aObject;
delete tagHandler;
return 0;
}
@@ -115,29 +115,23 @@ public:
check for a Tag name, and setting the current TagHandler when it is reached
***************************************************************/
class CTagFinder: public nsDequeFunctor{
+
public:
- CTagFinder(){mTagName = nsnull;}
- void Initialize(nsAutoString* aTagName) {mTagName = aTagName;}
+ CTagFinder(){}
+ void Initialize(const nsString &aTagName) {mTagName = aTagName;}
virtual ~CTagFinder() {
}
- virtual void* operator()(void* anObject)
- {
- nsITagHandler* thetaghandler;
- nsAutoString *thestring;
-
- //mCurTagHandler = 0;
- thestring = ((nsITagHandler*)anObject)->GetString();
- if( thestring->Equals(*mTagName)){
- //thetaghandler = (nsITagHandler*)anObject;
- return anObject;
- }
+ virtual void* operator()(void* aObject) {
+ nsString* theString = ((nsITagHandler*)aObject)->GetString();
+ if( theString->Equals(mTagName)){
+ return aObject;
+ }
return(0);
- }
+ }
- nsAutoString* mTagName;
- //nsITagHandler* mCurTagHandler;
+ nsAutoString mTagName;
};
/***************************************************************
@@ -151,29 +145,32 @@ public:
CTagHandlerRegister() : mDeallocator(), mTagHandlerDeque(mDeallocator) {
}
- ~CTagHandlerRegister() {
- }
- void RegisterTagHandler(nsAutoString *aTagName,nsITagHandler *aTagHandler){
- aTagHandler->SetString(aTagName);
+ void RegisterTagHandler(nsITagHandler *aTagHandler){
mTagHandlerDeque.Push(aTagHandler);
}
- nsITagHandler* FindTagHandler(nsAutoString* aTagName){
- nsITagHandler *foundhandler = nsnull;
+ nsITagHandler* FindTagHandler(const nsString &aTagName){
+ nsITagHandler* foundHandler = nsnull;
+
mTagFinder.Initialize(aTagName);
mTagHandlerDeque.Begin();
- foundhandler = (nsITagHandler*) mTagHandlerDeque.FirstThat(mTagFinder);
- return foundhandler;
+ foundHandler = (nsITagHandler*) mTagHandlerDeque.FirstThat(mTagFinder);
+ return foundHandler;
}
CTagHandlerDeallocator mDeallocator;
nsDeque mTagHandlerDeque;
CTagFinder mTagFinder;
-
};
+/************************************************************************
+ The CTagHandlerRegister for a CNavDTD.
+ This is where special taghanders for our tags can be managed and called from
+ Note: This can also be attached to some object so it can be refcounted
+ and destroyed if you want this to go away when not imbedded.
+ ************************************************************************/
CTagHandlerRegister gTagHandlerRegister;
@@ -486,11 +483,6 @@ nsresult CNavDTD::DidBuildModel(PRInt32 anErrorCode,PRBool aNotifySink){
nsresult CNavDTD::HandleToken(CToken* aToken){
nsresult result=NS_OK;
- // test and example of finding the tag handler
- //nsAutoString* findstring = new nsAutoString(aToken->GetStringValueXXX());
- //nsITagHandler* taghandler = gTagHandlerRegister.FindTagHandler(findstring);
-
-
if(aToken) {
CHTMLToken* theToken= (CHTMLToken*)(aToken);
eHTMLTokenTypes theType=eHTMLTokenTypes(theToken->GetTokenType());
diff --git a/mozilla/parser/htmlparser/src/nsDTDUtils.h b/mozilla/parser/htmlparser/src/nsDTDUtils.h
index cfa876ba0b9..07c2b879c1b 100644
--- a/mozilla/parser/htmlparser/src/nsDTDUtils.h
+++ b/mozilla/parser/htmlparser/src/nsDTDUtils.h
@@ -150,8 +150,8 @@ protected:
class nsITagHandler {
public:
- virtual void SetString(nsAutoString *aTheString)=0;
- virtual nsAutoString* GetString()=0;
+ virtual void SetString(const nsString &aTheString)=0;
+ virtual nsString* GetString()=0;
virtual PRBool HandleToken(CToken* aToken,nsIDTD* aDTD)=0;
virtual PRBool HandleCapturedTokens(CToken* aToken,nsIDTD* aDTD)=0;
};
diff --git a/mozilla/parser/htmlparser/src/nsTagHandler.h b/mozilla/parser/htmlparser/src/nsTagHandler.h
index 68870a1933e..9ad87bea6a9 100644
--- a/mozilla/parser/htmlparser/src/nsTagHandler.h
+++ b/mozilla/parser/htmlparser/src/nsTagHandler.h
@@ -24,50 +24,61 @@
/**
* MODULE NOTES:
- * @update DC 11/5/98
+ * @update dc 11/20/98
**/
/**
- * This class defines the object that can do special tag handling
+ * This class defines an object that can do special tag handling
*
- * @update DC 11/5/98
+ * @update DC 11/20/98
*/
class nsTagHandler : public nsITagHandler {
-// MEMBERS
public:
nsAutoString mTheTagName;
-
-// METHODS
public:
/**
* Constructor
- * @update dc 11/5/98
+ * @update dc 11/05/98
*/
nsTagHandler() {}
+
+ /**
+ * Destructor
+ * @update dc 11/05/98
+ */
~nsTagHandler() {}
/**
- * SetString
+ * Sets the string (tag) for this nsTagHandler to handle
+ * @update dc 11/19/98
+ * @param aTheString -- The string (tag) associated with this handler
+ * @return VOID
*/
- void SetString(nsAutoString *aTheString) {mTheTagName = *aTheString;}
-
- nsAutoString* GetString() {return &mTheTagName;}
+ void SetString(const nsString &aTheString) {mTheTagName = aTheString;}
/**
- * Handle this token prior to the DTD
+ * Returns the string (tag) handled by this nsTagHandler
+ * @update dc 11/19/98
+ * @return The tagname associated with this class
+ */
+ nsString* GetString() {return &mTheTagName;}
+
+ /**
+ * Handle this tag prior to the DTD
* @update dc 11/5/98
+ * @return A boolean indicating if this token was handled here
*/
virtual PRBool HandleToken(CToken* aToken,nsIDTD* aDTD) {return PR_FALSE;};
/**
- * Handle this token prior to the DTD
+ * Handle this tag prior to the DTD
* @update dc 11/5/98
- * @return ptr to previously set contentsink (usually null)
+ * @return A boolean indicating if this token was handled here
*/
virtual PRBool HandleCapturedTokens(CToken* aToken,nsIDTD* aDTD) {return PR_FALSE;};