From 30427485ddfd6fa4b949d42c832d19594ed5885a Mon Sep 17 00:00:00 2001 From: Ivan Frade Date: Fri, 8 Sep 2023 08:20:31 -0700 Subject: [PATCH] DfsPackfile: Emit the index load with the index object The DfsReader#emitIndexLoad expects a reference to the loaded object, not to its identity hash. This makes listeneres recalculate an identity hash over an Int object. Pass the expected reference to the method. Change-Id: Iee982fdd0169c93c5c7cd9cfe4260a7a82d23f6a --- .../jgit/internal/storage/dfs/DfsPackFile.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java index ecbfa74e6..70c8d0433 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java @@ -182,7 +182,7 @@ private PackIndex idx(DfsReader ctx) throws IOException { PackIndex idx = idxref.get(); if (index == null && idx != null) { index = idx; - ctx.emitIndexLoad(desc, INDEX, System.identityHashCode(idx)); + ctx.emitIndexLoad(desc, INDEX, idx); } return index; } catch (IOException e) { @@ -229,7 +229,7 @@ public PackBitmapIndex getBitmapIndex(DfsReader ctx) throws IOException { PackBitmapIndex bmidx = idxref.get(); if (bitmapIndex == null && bmidx != null) { bitmapIndex = bmidx; - ctx.emitIndexLoad(desc, BITMAP_INDEX, System.identityHashCode(bmidx)); + ctx.emitIndexLoad(desc, BITMAP_INDEX, bmidx); } return bitmapIndex; } @@ -268,7 +268,7 @@ public CommitGraph getCommitGraph(DfsReader ctx) throws IOException { CommitGraph cg = cgref.get(); if (commitGraph == null && cg != null) { commitGraph = cg; - ctx.emitIndexLoad(desc, COMMIT_GRAPH, System.identityHashCode(cg)); + ctx.emitIndexLoad(desc, COMMIT_GRAPH, cg); } return commitGraph; } @@ -303,7 +303,7 @@ public PackReverseIndex getReverseIdx(DfsReader ctx) throws IOException { PackReverseIndex revidx = revref.get(); if (reverseIndex == null && revidx != null) { reverseIndex = revidx; - ctx.emitIndexLoad(desc, REVERSE_INDEX, System.identityHashCode(revidx)); + ctx.emitIndexLoad(desc, REVERSE_INDEX, revidx); } return reverseIndex; } @@ -334,7 +334,7 @@ private PackObjectSizeIndex getObjectSizeIndex(DfsReader ctx) PackObjectSizeIndex sizeIdx = sizeIdxRef.get(); if (objectSizeIndex == null && sizeIdx != null) { objectSizeIndex = sizeIdx; - ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, System.identityHashCode(sizeIdx)); + ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, sizeIdx); } } finally { objectSizeIndexLoadAttempted = true; @@ -1183,7 +1183,7 @@ private DfsBlockCache.Ref loadPackIndex( try (ReadableChannel rc = ctx.db.openFile(desc, INDEX)) { PackIndex idx = PackIndex.read(alignTo8kBlocks(rc)); ctx.stats.readIdxBytes += rc.position(); - ctx.emitIndexLoad(desc, INDEX, System.identityHashCode(idx)); + ctx.emitIndexLoad(desc, INDEX, idx); index = idx; return new DfsBlockCache.Ref<>( idxKey, @@ -1211,7 +1211,7 @@ private DfsBlockCache.Ref loadReverseIdx( long start = System.nanoTime(); PackReverseIndex revidx = PackReverseIndexFactory.computeFromIndex(idx); reverseIndex = revidx; - ctx.emitIndexLoad(desc, REVERSE_INDEX, System.identityHashCode(revidx)); + ctx.emitIndexLoad(desc, REVERSE_INDEX, revidx); ctx.stats.readReverseIdxMicros += elapsedMicros(start); return new DfsBlockCache.Ref<>( revKey, @@ -1232,7 +1232,7 @@ private DfsBlockCache.Ref loadObjectSizeIndex( objectSizeIndex = PackObjectSizeIndexLoader .load(Channels.newInputStream(rc)); size = rc.position(); - ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, System.identityHashCode(objectSizeIndex)); + ctx.emitIndexLoad(desc, OBJECT_SIZE_INDEX, objectSizeIndex); } catch (IOException e) { parsingError = e; }