File tree Expand file tree Collapse file tree 1 file changed +8
-4
lines changed
unsafe/src/main/java/org/apache/spark/unsafe/map Expand file tree Collapse file tree 1 file changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -177,9 +177,9 @@ public Iterator<Location> iterator() {
177
177
178
178
private int pageCur = 0 ;
179
179
180
- private MemoryBlock currentPage = dataPages . get ( 0 ) ;
180
+ private MemoryBlock currentPage ;
181
181
182
- private long addr = currentPage . getBaseOffset () ;
182
+ private long addr ;
183
183
184
184
@ Override
185
185
public boolean hasNext () {
@@ -188,16 +188,20 @@ public boolean hasNext() {
188
188
189
189
@ Override
190
190
public Location next () {
191
+ if (currentPage == null ) {
192
+ currentPage = dataPages .get (pageCur ++);
193
+ addr = currentPage .getBaseOffset ();
194
+ }
191
195
long keySize = PlatformDependent .UNSAFE .getLong (memoryManager .getPage (addr ), addr );
192
196
if (keySize == -1L ) {
193
197
currentPage = dataPages .get (pageCur ++);
194
198
addr = currentPage .getBaseOffset ();
195
199
}
196
- long keyAddr = addr ;
200
+ loc . with ( addr , true ) ;
197
201
addr += keySize + 8 ;
198
202
addr += PlatformDependent .UNSAFE .getLong (memoryManager .getPage (addr ), addr ) + 8 ;
199
203
cur ++;
200
- return loc . with ( keyAddr , true ) ;
204
+ return loc ;
201
205
}
202
206
203
207
@ Override
You can’t perform that action at this time.
0 commit comments