Author: Armin Rigo <[email protected]>
Branch:
Changeset: r2193:41f9e10dfdee
Date: 2015-06-24 18:03 +0200
http://bitbucket.org/cffi/cffi/changeset/41f9e10dfdee/
Log: Clarify the weakdict example
diff --git a/doc/source/using.rst b/doc/source/using.rst
--- a/doc/source/using.rst
+++ b/doc/source/using.rst
@@ -63,16 +63,18 @@
global_weakkeydict = weakref.WeakKeyDictionary()
- s1 = ffi.new("struct foo *")
- fld1 = ffi.new("struct bar *")
- fld2 = ffi.new("struct bar *")
- s1.thefield1 = fld1
- s1.thefield2 = fld2
- # here the 'fld1' and 'fld2' object must not go away,
- # otherwise 's1.thefield1/2' will point to garbage!
- global_weakkeydict[s1] = (fld1, fld2)
- # now 's1' keeps alive 'fld1' and 'fld2'. When 's1' goes
- # away, then the weak dictionary entry will be removed.
+ def make_foo():
+ s1 = ffi.new("struct foo *")
+ fld1 = ffi.new("struct bar *")
+ fld2 = ffi.new("struct bar *")
+ s1.thefield1 = fld1
+ s1.thefield2 = fld2
+ # here the 'fld1' and 'fld2' object must not go away,
+ # otherwise 's1.thefield1/2' will point to garbage!
+ global_weakkeydict[s1] = (fld1, fld2)
+ # now 's1' keeps alive 'fld1' and 'fld2'. When 's1' goes
+ # away, then the weak dictionary entry will be removed.
+ return s1
The cdata objects support mostly the same operations as in C: you can
read or write from pointers, arrays and structures. Dereferencing a
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit