diff options
Diffstat (limited to 'src/server/events/Delta.cpp')
-rw-r--r-- | src/server/events/Delta.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp index dc6759b0..a768beb0 100644 --- a/src/server/events/Delta.cpp +++ b/src/server/events/Delta.cpp @@ -230,10 +230,16 @@ Delta::pre_process() } } - // Remove all added properties if this is a put - if (_type == Type::PUT && _object) { - for (const auto& p : _properties) { - _object->remove_property(p.first, p.second); + // Remove all added properties if this is a put or set + if (_object) { + if (_type == Type::PUT) { + for (const auto& p : _properties) { + _object->remove_property(p.first, p.second); + } + } else if (_type == Type::SET) { + for (const auto& p : _properties) { + _object->remove_property(p.first, uris.patch_wildcard); + } } } |