NS_RELEASE(bookmark);
mLastItem = bookmark;
BookmarkParser::CreateBookmark(void){    enum {        eBmkAttribute_URL = 0,        eBmkAttribute_AddDate = 1,        eBmkAttribute_LastVisit = 2,        eBmkAttribute_LastModified = 3    };    nsAutoString values[4];    PRInt32 index = 0;    for (PRInt32 i = 0; i < 4; ++i) {        PRInt32 start = mLine.Find('"', index);        if (start == -1)            break;        ++start; // past the first quote        PRInt32 end = mLine.Find('"', start);        PR_ASSERT(end > 0); // unterminated        if (end == -1)            end = mLine.Length();        mLine.Mid(values[i], start, end - start);        index = end + 1;    }    if (values[eBmkAttribute_URL].Length() == 0)        return;    nsIRDFNode* bookmark;    if (NS_FAILED(mResourceMgr->GetNode(values[eBmkAttribute_URL], bookmark)))        return;    if (! mStack.Count())        return;    nsIRDFNode* parent = (nsIRDFNode*) mStack[mStack.Count() - 1];    if (! parent)        return;    rdf_Assert(mResourceMgr, mDataSource, parent, kURINC_Bookmark, bookmark);    if (values[eBmkAttribute_AddDate].Length() > 0)        AssertTime(bookmark, kURINC_BookmarkAddDate, values[eBmkAttribute_AddDate]);    if (values[eBmkAttribute_LastVisit].Length() > 0)        AssertTime(bookmark, kURIWEB_LastVisitDate, values[eBmkAttribute_LastVisit]);    if (values[eBmkAttribute_LastModified].Length() > 0)        AssertTime(bookmark, kURIWEB_LastModifiedDate, values[eBmkAttribute_LastModified]);    NS_RELEASE(bookmark);}