Add invalidation for property source. Fix cache lock for scores.

This commit is contained in:
2022-11-14 16:38:15 +08:00
parent 05664a2994
commit d2ff168e25
2 changed files with 3 additions and 0 deletions

View File

@@ -150,10 +150,12 @@ namespace Cryville.Crtr {
var key = scoreop.Key;
_etor.ContextSelfValue = scoreSrcs[key.name.Key];
_etor.Evaluate(scoreOps[key.name.Key], scoreop.Value);
scoreSrcs[key.name.Key].Invalidate();
foreach (var s in _rs.scores) {
if (s.Value.value != null) {
_etor.ContextSelfValue = scoreSrcs[s.Key.Key];
_etor.Evaluate(scoreOps[s.Key.Key], s.Value.value);
scoreSrcs[s.Key.Key].Invalidate();
}
}
}

View File

@@ -6,6 +6,7 @@ namespace Cryville.Crtr {
public abstract class PropSrc {
int _type;
byte[] _buf = null;
public void Invalidate() { _buf = null; }
public void Get(out int type, out byte[] value) {
if (_buf == null) InternalGet(out _type, out _buf);
type = _type;