diff options
| author | Sondre Lillebø Gundersen <sondrelg@live.no> | 2021-08-30 16:12:05 +0300 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-08-31 07:34:53 +0200 |
| commit | 2c912c348808ee66a4fd164bda68b494243c6c54 (patch) | |
| tree | 2719a6a69ab382c1f9917d29bb707c833e294f6a /django/core/cache/backends/memcached.py | |
| parent | 96ab3a13792c129b9a16c5788e9e0bf3d828564d (diff) | |
Fixed #33061 -- Fixed handling nonexistent keys with negative deltas in incr()/decr() in memcached backends.
Thanks Chris Jerdonek for the review.
Diffstat (limited to 'django/core/cache/backends/memcached.py')
| -rw-r--r-- | django/core/cache/backends/memcached.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py index 112dbdd1ff..0ca485903a 100644 --- a/django/core/cache/backends/memcached.py +++ b/django/core/cache/backends/memcached.py @@ -105,11 +105,11 @@ class BaseMemcachedCache(BaseCache): self._cache.disconnect_all() def incr(self, key, delta=1, version=None): - key = self.make_key(key, version=version) - self.validate_key(key) # memcached doesn't support a negative delta if delta < 0: - return self._cache.decr(key, -delta) + return self.decr(key, -delta, version=version) + key = self.make_key(key, version=version) + self.validate_key(key) try: val = self._cache.incr(key, delta) @@ -122,11 +122,11 @@ class BaseMemcachedCache(BaseCache): return val def decr(self, key, delta=1, version=None): - key = self.make_key(key, version=version) - self.validate_key(key) # memcached doesn't support a negative delta if delta < 0: - return self._cache.incr(key, -delta) + return self.incr(key, -delta, version=version) + key = self.make_key(key, version=version) + self.validate_key(key) try: val = self._cache.decr(key, delta) |
