Mercurial > jhg
comparison src/org/tmatesoft/hg/util/PathPool.java @ 231:1792b37650f2
Introduced access to conflict resolution information (merge state)
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Wed, 01 Jun 2011 05:44:25 +0200 |
parents | 8248aae33f7d |
children | a415fe296a50 |
comparison
equal
deleted
inserted
replaced
230:0dd9da7489dc | 231:1792b37650f2 |
---|---|
39 p = pathRewrite.rewrite(p); | 39 p = pathRewrite.rewrite(p); |
40 return get(p, true); | 40 return get(p, true); |
41 } | 41 } |
42 | 42 |
43 // pipes path object through cache to reuse instance, if possible | 43 // pipes path object through cache to reuse instance, if possible |
44 // TODO unify with Pool<Path> | |
44 public Path path(Path p) { | 45 public Path path(Path p) { |
45 String s = pathRewrite.rewrite(p.toString()); | 46 String s = pathRewrite.rewrite(p.toString()); |
46 Path cached = get(s, false); | 47 Path cached = get(s, false); |
47 if (cached == null) { | 48 if (cached == null) { |
48 cache.put(s, new SoftReference<Path>(cached = p)); | 49 cache.put(s, new SoftReference<Path>(cached = p)); |
61 return get(path.subSequence(0, i+1).toString(), true); | 62 return get(path.subSequence(0, i+1).toString(), true); |
62 } | 63 } |
63 } | 64 } |
64 return get("", true); | 65 return get("", true); |
65 } | 66 } |
67 | |
68 // invoke when path pool is no longer in use, to ease gc work | |
69 public void clear() { | |
70 cache.clear(); | |
71 } | |
66 | 72 |
67 private Path get(String p, boolean create) { | 73 private Path get(String p, boolean create) { |
68 SoftReference<Path> sr = cache.get(p); | 74 SoftReference<Path> sr = cache.get(p); |
69 Path path = sr == null ? null : sr.get(); | 75 Path path = sr == null ? null : sr.get(); |
70 if (path == null) { | 76 if (path == null) { |