InstallIsidorus: remove-association-elephant-1.0.a2.patch

File remove-association-elephant-1.0.a2.patch, 3.9 KB (added by lgiessmann, 14 years ago)
Line 
1Wed Dec 16 11:10:47 CET 2009  lukas.giessmann@hotmail.de
2  * remove-association
3
4New patches:
5
6[remove-association
7lukas.giessmann@hotmail.de**20091216101047
8 Ignore-this: 86dc87403a2617800d913be373dd6992
9] {
10hunk ./src/elephant/associations.lisp 102
11   (let ((index (get-association-index slot-def (get-con instance))))
12     (if (and (eq (association-type slot-def) :ref)
13             (slot-boundp-using-class class instance slot-def))
14-       (remove-kv-pair (slot-value-using-class class instance slot-def) (oid instance) index)
15-       (remove-kv-pair (oid associated) (oid instance) index))))
16+       (remove-kv-pair (oid (slot-value-using-class class instance slot-def)) (oid instance) index)
17+       (when associated ;it is possible that the original association
18+                         ;slot was not bound at the time of
19+                         ;deletion. thus, remove the entry only when
20+                         ;it is bound
21+         (remove-kv-pair (oid associated) (oid instance) index)))))
22 
23 (defun update-other-association-end (class instance slot-def other-instance)
24   "Update the association index for the other object so that it maps from
25hunk ./src/elephant/associations.lisp 175
26     (when (type-check-association instance slot-def associated)
27       (ensure-transaction (:store-controller sc)
28        (case (association-type slot-def)
29-         (:ref (setf (slot-value instance (if (symbolp slotname) slotname (slot-definition-name slotname))) nil))
30-         (:m21 (remove-association-end fclass associated fslot instance))
31+         (:ref (when (slot-boundp-using-class class instance slot-def)
32+                  (slot-makunbound-using-class class instance slot-def)))
33+          (:m21 (when (slot-boundp-using-class fclass associated fslot)
34+                  (slot-makunbound-using-class fclass associated fslot)))
35           (:m2m (remove-association-end fclass associated fslot instance)
36                (remove-association-end class instance slot-def associated)))))))
37 
38}
39
40Context:
41
42[TAG ELEPHANT-1-0-A2
43eslick@common-lisp.net**20090113201539]
44[Clean up memutil fixnum interface
45ieslick@common-lisp.net**20090113200727]
46[Association declaration bug
47ieslick@common-lisp.net**20090113200713]
48[Clean up serialier use of memutil; bdb condition msg
49ieslick@common-lisp.net**20090113195939]
50[Revert sbcl fast locks; add errfile to BDB; improve cache locking
51ieslick@common-lisp.net**20090113013529]
52[Fix race condition in caching; add BDB errfile support; minor imprrovements to transaction macro and pset api.
53ieslick@common-lisp.net**20090112223522]
54[Ensure that BDB condition is valid during macroexpansion
55ieslick@common-lisp.net**20090112210529]
56[Fix testcondition conflicts
57eslick@common-lisp.net**20090110200538]
58[Fix transaction inhibit test
59ieslick@common-lisp.net**20090110004336]
60[Fixup indexing for clozure; BDB transaction inhibiting bugfix
61eslick@common-lisp.net**20090110165542]
62[Fix rollback test
63ieslick@common-lisp.net**20090110004026]
64[Performance declarations (not verified on all lisps)
65ieslick@common-lisp.net**20090109143359]
66[Fix bug in inhibit-rollback; fix reinit bug on persistent-metaclas
67ieslick@common-lisp.net**20090109104433]
68[Remove default register argument enabled for BDB
69ieslick@common-lisp.net**20090109071045]
70[Inhibit-rollback option to BDB transactions for arbitrary non-local exits
71ieslick@common-lisp.net**20090109070733]
72[Revert some minor changes
73ieslick@common-lisp.net**20090109035713]
74[Simple extension to snapshot-set
75ieslick@common-lisp.net**20090109031720]
76[Fix duplicate item warning in BDB index writes
77ieslick@common-lisp.net**20090107153442]
78[Fix load order and layout for GC subsystem
79ieslick@common-lisp.net**20090107125806]
80[Enhance concurrent gc to catch writes during the mark phase
81ieslick@common-lisp.net**20090107053908]
82[Change code version to 1.0; optimize symbol interning in serializer
83ieslick@common-lisp.net**20090107042700]
84[TAG ELEPHANT-1-0-A1
85ieslick@common-lisp.net**20090105234537]
86Patch bundle hash:
87499216a2aba238e27f0886dd1cc7fc4cbf1ef232