From: Ruth Alkema Date: Wed, 11 Mar 2009 15:51:05 GMT Subject: Re: [PATCH JGIT] fix for 'negative position' error Message-ID: <49B7DDE9.7070407@diasoft.nl> In-Reply-To: <20090311152442.GS11989@spearce.org> On second thought, I think that my previous patch can still go wrong for large values in 'position' I think the following patch should work. Kind regards, I hope the email is according to the guidelines for submitting patches, I am new to git, I used 'amend previous commit', I am not sure if that is correct in this case. Ruth Alkema >From 5e7200f02f91d948278fb515be59bfe2db535b66 Mon Sep 17 00:00:00 2001 From: Ruth Alkema Date: Wed, 11 Mar 2009 16:42:45 +0100 Subject: [PATCH] fix for 'negative position' error Signed-off-by: Ruth Alkema --- .../src/org/spearce/jgit/lib/WindowCache.java | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java index 4b7e10d..597ad61 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java @@ -253,7 +253,7 @@ private static synchronized final void getImpl(final WindowCursor curs, releaseMemory(); runClearedWindowQueue(); - wp.allocWindow(curs, id, id << windowSizeShift, wsz); + wp.allocWindow(curs, id, (position >> windowSizeShift) << windowSizeShift, wsz); final ByteWindow e = curs.window; e.chainNext = cache[idx]; cache[idx] = e; -- 1.6.0.6 Shawn O. Pearce wrote: > Ruth Alkema wrote: >> diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java >> index 4b7e10d..5340da9 100644 >> --- a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java >> +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java >> @@ -253,7 +253,7 @@ private static synchronized final void getImpl(final WindowCursor curs, >> releaseMemory(); >> runClearedWindowQueue(); >> >> - wp.allocWindow(curs, id, id << windowSizeShift, wsz); >> + wp.allocWindow(curs, id, ((long) id) << windowSizeShift, wsz); > > Ouch. > > Thanks for the fix! >