| 94 | } |
| 95 | |
| 96 | bool JSUPtrList::insert(JSUPtrLink *pLink_1, JSUPtrLink *pLink_2) { |
| 97 | if (pLink_1 == mHead) { |
| 98 | return prepend(pLink_2); |
| 99 | } |
| 100 | if (!pLink_1) { |
| 101 | return append(pLink_2); |
| 102 | } |
| 103 | if (pLink_1->mPtrList != this) { |
| 104 | return false; |
| 105 | } |
| 106 | |
| 107 | JSUPtrList* link2PtrList = pLink_2->mPtrList; |
| 108 | |
| 109 | bool validity = (link2PtrList == 0); |
| 110 | |
| 111 | if (!validity) { |
| 112 | validity = link2PtrList->remove(pLink_2); |
| 113 | } |
| 114 | |
| 115 | if (validity) { |
| 116 | JSUPtrLink* prev = pLink_1->mPrev; |
| 117 | pLink_2->mPtrList = this; |
| 118 | pLink_2->mPrev = prev; |
| 119 | pLink_2->mNext = pLink_1; |
| 120 | prev->mNext = pLink_2; |
| 121 | pLink_1->mPrev = pLink_2; |
| 122 | mLinkCount++; |
| 123 | } |
| 124 | |
| 125 | return validity; |
| 126 | } |
| 127 | |
| 128 | bool JSUPtrList::remove(JSUPtrLink *pLink) { |
| 129 | bool isSameList = (pLink->mPtrList == this); |
no test coverage detected