You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Python-exiv2 from version 0.8.3 onwards is built with support for bmff files.
66
+
In order to use bmff files in your Python program you need to call the ``enableBMFF`` function.
67
+
Please read the Exiv2 `statement on bmff`_ patents before doing so.
68
+
62
69
Assignment
63
70
----------
64
71
@@ -101,7 +108,6 @@ For example::
101
108
>>>
102
109
103
110
Before using an iterator you must ensure that it is not equal to the ``end()`` value.
104
-
Failure to do so may produce a segmentation fault, just like a C++ program would.
105
111
106
112
You can iterate over the data in a very C++ like style::
107
113
@@ -150,12 +156,10 @@ This allows them to be used in a very Pythonic style::
150
156
del data['Iptc.Application2.Keywords']
151
157
152
158
Warning: segmentation faults
153
-
----------------------------
159
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
154
160
155
-
Many of the libexiv2 objects point to data in other objects.
156
-
For example, ``image.exifData()`` returns an object that points to data in ``image``.
157
-
The Python interface uses Python objects' reference counting to prevent ``image`` being deleted while its data is being pointed at by another object.
158
-
This avoids one possible cause of segfaults.
161
+
If an iterator is invalidated, e.g. by deleting the datum it points to, then your Python program may crash with a segmentation fault if you try to use the invalid iterator.
162
+
Just as in C++, there is no way to detect that an iterator has become invalid.
159
163
160
164
There may be other cases where the Python interface doesn't prevent segfaults.
161
165
Please let me know if you find any.
@@ -208,4 +212,5 @@ Please email jim@jim-easterbrook.me.uk if you find any problems (or solutions!).
0 commit comments