summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-08-29 03:52:40 +0000
committerDavid Robillard <d@drobilla.net>2015-08-29 03:52:40 +0000
commit5bab69b6a79f1693e9337bdf162cf6d1889a2223 (patch)
treee8fc954be87e5a4f2dfeaf66efdc1c1346481a51
parentab26d49a68ce04fce8ba11c301b67a801a6e7acf (diff)
downloadingen-5bab69b6a79f1693e9337bdf162cf6d1889a2223.tar.gz
ingen-5bab69b6a79f1693e9337bdf162cf6d1889a2223.tar.bz2
ingen-5bab69b6a79f1693e9337bdf162cf6d1889a2223.zip
Set properties uniquely for set method.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5712 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--src/server/events/Delta.cpp14
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);
+ }
}
}