Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/HgManifest.java @ 320:678e326fd27c
Issue 15: Exception accessing oddly named file from history
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 30 Sep 2011 06:22:11 +0200 |
| parents | c1e3c18fd2f2 |
| children | ac38e75c9e8e |
comparison
equal
deleted
inserted
replaced
| 319:fa4aea41746e | 320:678e326fd27c |
|---|---|
| 18 | 18 |
| 19 import static org.tmatesoft.hg.repo.HgRepository.TIP; | 19 import static org.tmatesoft.hg.repo.HgRepository.TIP; |
| 20 | 20 |
| 21 import java.io.ByteArrayOutputStream; | 21 import java.io.ByteArrayOutputStream; |
| 22 import java.io.IOException; | 22 import java.io.IOException; |
| 23 import java.nio.charset.Charset; | |
| 23 import java.util.ArrayList; | 24 import java.util.ArrayList; |
| 24 import java.util.Arrays; | 25 import java.util.Arrays; |
| 25 | 26 |
| 26 import org.tmatesoft.hg.core.HgBadStateException; | 27 import org.tmatesoft.hg.core.HgBadStateException; |
| 27 import org.tmatesoft.hg.core.Nodeid; | 28 import org.tmatesoft.hg.core.Nodeid; |
| 28 import org.tmatesoft.hg.internal.DataAccess; | 29 import org.tmatesoft.hg.internal.DataAccess; |
| 29 import org.tmatesoft.hg.internal.DigestHelper; | 30 import org.tmatesoft.hg.internal.DigestHelper; |
| 31 import org.tmatesoft.hg.internal.EncodingHelper; | |
| 30 import org.tmatesoft.hg.internal.Experimental; | 32 import org.tmatesoft.hg.internal.Experimental; |
| 31 import org.tmatesoft.hg.internal.IterateControlMediator; | 33 import org.tmatesoft.hg.internal.IterateControlMediator; |
| 32 import org.tmatesoft.hg.internal.Lifecycle; | 34 import org.tmatesoft.hg.internal.Lifecycle; |
| 33 import org.tmatesoft.hg.internal.Pool2; | 35 import org.tmatesoft.hg.internal.Pool2; |
| 34 import org.tmatesoft.hg.internal.RevlogStream; | 36 import org.tmatesoft.hg.internal.RevlogStream; |
| 266 return hash; | 268 return hash; |
| 267 } | 269 } |
| 268 | 270 |
| 269 public Path freeze() { | 271 public Path freeze() { |
| 270 if (result == null) { | 272 if (result == null) { |
| 271 result = Path.create(new String(data, start, length)); | 273 result = Path.create(EncodingHelper.fromManifest(data, start, length)); |
| 272 // release reference to bigger data array, make a copy of relevant part only | 274 // release reference to bigger data array, make a copy of relevant part only |
| 273 // use original bytes, not those from String above to avoid cache misses due to different encodings | 275 // use original bytes, not those from String above to avoid cache misses due to different encodings |
| 274 byte[] d = new byte[length]; | 276 byte[] d = new byte[length]; |
| 275 System.arraycopy(data, start, d, 0, length); | 277 System.arraycopy(data, start, d, 0, length); |
| 276 data = d; | 278 data = d; |
