| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package memory | 5 package memory |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "bytes" | 8 "bytes" |
| 9 "fmt" | 9 "fmt" |
| 10 "sync" | 10 "sync" |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 incrementLocked(ents, groupMetaKey(ret), 1) | 270 incrementLocked(ents, groupMetaKey(ret), 1) |
| 271 } | 271 } |
| 272 | 272 |
| 273 old := ents.Get(keyBytes(ret)) | 273 old := ents.Get(keyBytes(ret)) |
| 274 oldPM := ds.PropertyMap(nil) | 274 oldPM := ds.PropertyMap(nil) |
| 275 if old != nil { | 275 if old != nil { |
| 276 if oldPM, err = rpm(old); err != nil { | 276 if oldPM, err = rpm(old); err != nil { |
| 277 return | 277 return |
| 278 } | 278 } |
| 279 } | 279 } |
| 280 ents.Set(keyBytes(ret), dataBytes) |
| 280 updateIndexes(d.head, ret, oldPM, pmap) | 281 updateIndexes(d.head, ret, oldPM, pmap) |
| 281 ents.Set(keyBytes(ret), dataBytes) | |
| 282 return | 282 return |
| 283 }() | 283 }() |
| 284 if cb != nil { | 284 if cb != nil { |
| 285 cb(k, err) | 285 cb(k, err) |
| 286 } | 286 } |
| 287 } | 287 } |
| 288 } | 288 } |
| 289 | 289 |
| 290 func getMultiInner(keys []*ds.Key, cb ds.GetMultiCB, getColl func() (*memCollect
ion, error)) error { | 290 func getMultiInner(keys []*ds.Key, cb ds.GetMultiCB, getColl func() (*memCollect
ion, error)) error { |
| 291 ents, err := getColl() | 291 ents, err := getColl() |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 ents := d.mutableEntsLocked(ns) | 338 ents := d.mutableEntsLocked(ns) |
| 339 | 339 |
| 340 if !d.disableSpecialEntities { | 340 if !d.disableSpecialEntities { |
| 341 incrementLocked(ents, groupMetaKey(k), 1
) | 341 incrementLocked(ents, groupMetaKey(k), 1
) |
| 342 } | 342 } |
| 343 if old := ents.Get(kb); old != nil { | 343 if old := ents.Get(kb); old != nil { |
| 344 oldPM, err := rpm(old) | 344 oldPM, err := rpm(old) |
| 345 if err != nil { | 345 if err != nil { |
| 346 return err | 346 return err |
| 347 } | 347 } |
| 348 ents.Delete(kb) |
| 348 updateIndexes(d.head, k, oldPM, nil) | 349 updateIndexes(d.head, k, oldPM, nil) |
| 349 ents.Delete(kb) | |
| 350 } | 350 } |
| 351 return nil | 351 return nil |
| 352 }() | 352 }() |
| 353 if cb != nil { | 353 if cb != nil { |
| 354 cb(err) | 354 cb(err) |
| 355 } | 355 } |
| 356 } | 356 } |
| 357 } else if cb != nil { | 357 } else if cb != nil { |
| 358 for range keys { | 358 for range keys { |
| 359 cb(nil) | 359 cb(nil) |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 } | 557 } |
| 558 | 558 |
| 559 func keyBytes(key *ds.Key) []byte { | 559 func keyBytes(key *ds.Key) []byte { |
| 560 return serialize.ToBytes(ds.MkProperty(key)) | 560 return serialize.ToBytes(ds.MkProperty(key)) |
| 561 } | 561 } |
| 562 | 562 |
| 563 func rpm(data []byte) (ds.PropertyMap, error) { | 563 func rpm(data []byte) (ds.PropertyMap, error) { |
| 564 return serialize.ReadPropertyMap(bytes.NewBuffer(data), | 564 return serialize.ReadPropertyMap(bytes.NewBuffer(data), |
| 565 serialize.WithContext, "", "") | 565 serialize.WithContext, "", "") |
| 566 } | 566 } |
| OLD | NEW |