Mercurial > jhg
comparison src/org/tmatesoft/hg/internal/ManifestRevision.java @ 415:ee8264d80747
Explicit constant for regular file flags, access to flags for a given file revision
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Thu, 22 Mar 2012 18:54:11 +0100 | 
| parents | 6dbbc53fc46d | 
| children | 9c9c442b5f2e | 
   comparison
  equal
  deleted
  inserted
  replaced
| 414:bb278ccf9866 | 415:ee8264d80747 | 
|---|---|
| 55 public Nodeid nodeid(Path fname) { | 55 public Nodeid nodeid(Path fname) { | 
| 56 return idsMap.get(fname); | 56 return idsMap.get(fname); | 
| 57 } | 57 } | 
| 58 | 58 | 
| 59 public HgManifest.Flags flags(Path fname) { | 59 public HgManifest.Flags flags(Path fname) { | 
| 60 return flagsMap.get(fname); | 60 HgManifest.Flags f = flagsMap.get(fname); | 
| 61 return f == null ? HgManifest.Flags.RegularFile : f; | |
| 61 } | 62 } | 
| 62 | 63 | 
| 63 /** | 64 /** | 
| 64 * @return identifier of the changeset this manifest revision corresponds to. | 65 * @return identifier of the changeset this manifest revision corresponds to. | 
| 65 */ | 66 */ | 
| 83 } | 84 } | 
| 84 if (idsPool != null) { | 85 if (idsPool != null) { | 
| 85 nid = idsPool.unify(nid); | 86 nid = idsPool.unify(nid); | 
| 86 } | 87 } | 
| 87 idsMap.put(fname, nid); | 88 idsMap.put(fname, nid); | 
| 88 if (flags != null) { | 89 if (flags != HgManifest.Flags.RegularFile) { | 
| 89 // TreeMap$Entry takes 32 bytes. No reason to keep null for such price | 90 // TreeMap$Entry takes 32 bytes. No reason to keep regular file attribute (in fact, no flags state) | 
| 91 // for such price | |
| 90 // Alternatively, Map<Path, Pair<Nodeid, Flags>> might come as a solution | 92 // Alternatively, Map<Path, Pair<Nodeid, Flags>> might come as a solution | 
| 91 // however, with low rate of elements with flags this would consume more memory | 93 // however, with low rate of elements with flags this would consume more memory | 
| 92 // than two distinct maps (sizeof(Pair) == 16). | 94 // than two distinct maps (sizeof(Pair) == 16). | 
| 93 // Map<Pair>: n*(32+16) | 95 // Map<Pair>: n*(32+16) | 
| 94 // 2 Maps: n*32 + m*32 <-- consumes more with m>n/2 | 96 // 2 Maps: n*32 + m*32 <-- consumes more with m>n/2 | 
