419 |
|
* because callers will have already read value field and need |
420 |
|
* to use that read (not another done here) and so directly |
421 |
|
* test if value points to node. |
422 |
< |
* @param n a possibly null reference to a node |
422 |
> |
* |
423 |
|
* @return true if this node is a marker node |
424 |
|
*/ |
425 |
|
boolean isMarker() { |
507 |
|
volatile Index<K,V> right; |
508 |
|
|
509 |
|
/** |
510 |
< |
* Creates index node with given values |
510 |
> |
* Creates index node with given values. |
511 |
|
*/ |
512 |
|
Index(Node<K,V> node, Index<K,V> down, Index<K,V> right) { |
513 |
|
this.node = node; |
1042 |
|
* Adds given index nodes from given level down to 1. |
1043 |
|
* @param idx the topmost index node being inserted |
1044 |
|
* @param h the value of head to use to insert. This must be |
1045 |
< |
* snapshotted by callers to provide correct insertion level |
1045 |
> |
* snapshotted by callers to provide correct insertion level. |
1046 |
|
* @param indexLevel the level of the index |
1047 |
|
*/ |
1048 |
|
private void addIndex(Index<K,V> idx, HeadIndex<K,V> h, int indexLevel) { |