avoiding confusion between line iterator between layout and navigation.

if you want a line iterator for navigation you must explicitly ask for one.


git-svn-id: svn://10.0.0.236/trunk@70013 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
anthonyd%netscape.com
2000-05-16 08:11:14 +00:00
parent a2868d1b34
commit 8e4f929fe8
18 changed files with 84 additions and 58 deletions

View File

@@ -20,7 +20,6 @@
* Contributor(s):
* Steve Clark <buster@netscape.com>
* Robert O'Callahan <roc+moz@cs.cmu.edu>
* Pierre Phaneuf <pp@ludusdesign.com>
*/
#include "nsCOMPtr.h"
#include "nsBlockFrame.h"
@@ -1206,7 +1205,8 @@ nsBlockFrame::QueryInterface(const nsIID& aIID, void** aInstancePtr)
*aInstancePtr = (void*) tmp;
return NS_OK;
}
if (aIID.Equals(NS_GET_IID(nsILineIterator))) {
if ( aIID.Equals(NS_GET_IID(nsILineIterator)) || aIID.Equals(NS_GET_IID(nsILineIteratorNavigator)) )
{
nsLineIterator* it = new nsLineIterator;
if (!it) {
*aInstancePtr = nsnull;
@@ -1220,7 +1220,8 @@ nsBlockFrame::QueryInterface(const nsIID& aIID, void** aInstancePtr)
delete it;
return rv;
}
return it->QueryInterface(aIID, aInstancePtr);
NS_ADDREF((nsILineIterator *) (*aInstancePtr = (void *) it));
return NS_OK;
}
return nsBlockFrameSuper::QueryInterface(aIID, aInstancePtr);
}