avoid nil

fix https://github.com/chrislusf/seaweedfs/issues/988
This commit is contained in:
Chris Lu 2019-06-21 20:56:27 -07:00
parent 308102f023
commit a111f26fe6
2 changed files with 9 additions and 3 deletions

View file

@ -78,7 +78,7 @@ func (f *Filer) deleteChunksIfNotNew(oldEntry, newEntry *Entry) {
for _, oldChunk := range oldEntry.Chunks {
found := false
for _, newChunk := range newEntry.Chunks {
if oldChunk.Fid.Equals(newChunk.Fid) {
if filer_pb.ChunkEquals(oldChunk, newChunk) {
found = true
break
}

View file

@ -21,8 +21,14 @@ func (fid *FileId) toFileId() string {
return needle.NewFileId(needle.VolumeId(fid.VolumeId), fid.FileKey, fid.Cookie).String()
}
func (fid *FileId) Equals(that *FileId) bool {
return fid.FileKey == that.FileKey && fid.VolumeId == that.VolumeId && fid.Cookie == that.Cookie
func ChunkEquals(this, that *FileChunk) bool {
if this.Fid == nil{
this.Fid, _ = toFileId(this.FileId)
}
if that.Fid == nil{
that.Fid, _ = toFileId(that.FileId)
}
return this.Fid.FileKey == that.Fid.FileKey && this.Fid.VolumeId == that.Fid.VolumeId && this.Fid.Cookie == that.Fid.Cookie
}
func BeforeEntrySerialization(chunks []*FileChunk) {