summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-11-06 12:19:14 +0100
committerClaude Paroz <claude@2xlibre.net>2012-11-06 12:22:42 +0100
commit79dd751b0b9e428bf386d7304f442fa9815fdbba (patch)
tree0154a5bdfd4b5bdd4d3fd02ae000bf4855a7fdca /django
parent2cc1884383a0b5371854be6806851521b623f45b (diff)
Fixed #14315 -- Made memcached backend handle negative incr/decr values
Thanks Michael Manfre for the report and initial patch and Tobias McNulty for the review.
Diffstat (limited to 'django')
-rw-r--r--django/core/cache/backends/memcached.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py
index 9bb47c8344..2c3f198847 100644
--- a/django/core/cache/backends/memcached.py
+++ b/django/core/cache/backends/memcached.py
@@ -90,6 +90,9 @@ class BaseMemcachedCache(BaseCache):
def incr(self, key, delta=1, version=None):
key = self.make_key(key, version=version)
+ # memcached doesn't support a negative delta
+ if delta < 0:
+ return self._cache.decr(key, -delta)
try:
val = self._cache.incr(key, delta)
@@ -105,6 +108,9 @@ class BaseMemcachedCache(BaseCache):
def decr(self, key, delta=1, version=None):
key = self.make_key(key, version=version)
+ # memcached doesn't support a negative delta
+ if delta < 0:
+ return self._cache.incr(key, -delta)
try:
val = self._cache.decr(key, delta)