When deleting beatmaps, remove their MD5 hashes from the lookup table.
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
parent
d5154b567e
commit
396071dfbc
|
@ -64,6 +64,9 @@ public class Beatmap implements Comparable<Beatmap> {
|
|||
/** The OSU File object associated with this beatmap. */
|
||||
private File file;
|
||||
|
||||
/** MD5 hash of this file. */
|
||||
public String md5Hash;
|
||||
|
||||
/**
|
||||
* [General]
|
||||
*/
|
||||
|
@ -203,9 +206,6 @@ public class Beatmap implements Comparable<Beatmap> {
|
|||
/** Slider border color. If null, the skin value is used. */
|
||||
public Color sliderBorder;
|
||||
|
||||
/** MD5 hash of this file. */
|
||||
public String md5Hash;
|
||||
|
||||
/**
|
||||
* [HitObjects]
|
||||
*/
|
||||
|
|
|
@ -164,12 +164,18 @@ public class BeatmapSetList {
|
|||
}
|
||||
|
||||
// remove all node references
|
||||
Beatmap beatmap = node.getBeatmapSet().get(0);
|
||||
BeatmapSet beatmapSet = node.getBeatmapSet();
|
||||
Beatmap beatmap = beatmapSet.get(0);
|
||||
nodes.remove(index);
|
||||
parsedNodes.remove(eCur);
|
||||
mapCount -= node.getBeatmapSet().size();
|
||||
mapCount -= beatmapSet.size();
|
||||
if (beatmap.beatmapSetID > 0)
|
||||
MSIDdb.remove(beatmap.beatmapSetID);
|
||||
for (int i = 0, n = beatmapSet.size(); i < n; i++) {
|
||||
Beatmap bm = beatmapSet.get(i);
|
||||
if (bm.md5Hash != null)
|
||||
this.beatmapHashDB.remove(bm.md5Hash);
|
||||
}
|
||||
|
||||
// reset indices
|
||||
for (int i = index, size = size(); i < size; i++)
|
||||
|
@ -241,6 +247,8 @@ public class BeatmapSetList {
|
|||
// remove song reference
|
||||
Beatmap beatmap = node.getBeatmapSet().remove(node.beatmapIndex);
|
||||
mapCount--;
|
||||
if (beatmap.md5Hash != null)
|
||||
beatmapHashDB.remove(beatmap.md5Hash);
|
||||
|
||||
// re-link nodes
|
||||
if (node.prev != null)
|
||||
|
|
Loading…
Reference in New Issue
Block a user