ah! ok... silly me.

Quoting Sandy Gao <[EMAIL PROTECTED]>:

> 
> 
> 
> 
> But when 2 strings are not equal, == gives the "false" answer immediately,
> while equals() still tries other things.
> (Think about "aaaaaaaaaaaaaaaaaaaaaaaaaa" and "aaaaaaaaaaaaaaaaaaaaaaaaab",
> same length and differ at the last point).
> 
> Sandy Gao
> Software Developer, IBM Canada
> (1-905) 413-3255
> [EMAIL PROTECTED]
> 
> 
> [EMAIL PROTECTED] wrote on 07/09/2004 12:36:07 PM:
> 
> > Ok,
> >
> >     Seems like a silly design choice as String.equals does this
> >
> >    public boolean equals(Object anObject) {
> >    if (this == anObject) {
> >        return true;
> >    }
> >
> >         ....
> >         ....
> >
> >
> >
> > There are over 30 String comparisons using == throughout the code, btw.
> >
> > But thanks for clearing that up.
> >
> >
> > Quoting Michael Glavassevich <[EMAIL PROTECTED]>:
> >
> > > Hello Dave,
> > >
> > > If you've been looking through the source code you'll notice that in
> many
> > > places we compare strings by reference instead of calling equals. For
> > > performance reasons Xerces keeps a table of unique strings for XML
> names
> > > (elements, attributes, entities, etc...) and namespace names (URIs).
> These
> > > strings have all been internalized (by calling String.intern()) so
> unique
> > > references for names and namespace names are passed through the
> parser's
> > > components. Methods which are part of the public API cannot take
> advantage
> > > of this because a user may pass a reference to some other string
> object,
> > > however this method is not part of the DOM API. I did a search for
> > > references to this method using Eclipse and it seems that it's not
> being
> > > called anywhere.
> > >
> > > Thanks.
> > >
> > > "Dave Brosius" <[EMAIL PROTECTED]> wrote on 07/07/2004 10:29:47 PM:
> > >
> > > > I ran across this in org.apache.xerces.dom.DeferredDocumentImpl
> > > >
> > > > Shouldn't this be
> > > >
> > > >             if (getChunkValue(fNodeName, achunk, aindex).equals(
> name))
> > > {
> > > >
> > > > ?
> > > >
> > > >
> > > >     public String getAttribute(int elemIndex, String name) {
> > > >         if (elemIndex == -1 || name == null) {
> > > >             return null;
> > > >         }
> > > >         int echunk = elemIndex >> CHUNK_SHIFT;
> > > >         int eindex = elemIndex & CHUNK_MASK;
> > > >         int attrIndex = getChunkIndex(fNodeExtra, echunk, eindex);
> > > >         while (attrIndex != -1) {
> > > >             int achunk = attrIndex >> CHUNK_SHIFT;
> > > >             int aindex = attrIndex & CHUNK_MASK;
> > > >             if (getChunkValue(fNodeName, achunk, aindex) == name) {
> > > >                 return getChunkValue(fNodeValue, achunk, aindex);
> > > >             }
> > > >             attrIndex = getChunkIndex(fNodePrevSib, achunk, aindex);
> > > >         }
> > > >         return null;
> > > >     }
> > >
> > > Michael Glavassevich
> > > XML Parser Development
> > > IBM Toronto Lab
> > > E-mail: [EMAIL PROTECTED]
> > > E-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to