From 1b48d5b9006ce55a69c72ca1742a86df42083add Mon Sep 17 00:00:00 2001
From: Jim Fulton <jim@zope.com>
Date: Sat, 1 Nov 2008 18:07:29 +0000
Subject: [PATCH] Do gc if there is no base storage.

---
 src/ZODB/DemoStorage.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/ZODB/DemoStorage.py b/src/ZODB/DemoStorage.py
index ebff82e6..4bcc18d9 100644
--- a/src/ZODB/DemoStorage.py
+++ b/src/ZODB/DemoStorage.py
@@ -194,7 +194,17 @@ class DemoStorage(object):
             
             return oid
 
-    def pack(self, t, referencesf, gc=False):
+    def pack(self, t, referencesf, gc=None):
+        if gc is None:
+            if self._temporary_base:
+                return self.changes.pack(t, referencesf)
+        elif self._temporary_base:
+            return self.changes.pack(t, referencesf, gc=gc)
+        elif gc:
+            raise TypeError(
+                "Garbage collection isn't supported"
+                " when there is a base storage.")
+        
         try:
             self.changes.pack(t, referencesf, gc=False)
         except TypeError, v:
-- 
2.30.9