擅长:python、mysql、java
<p>这是<a href="https://bugzilla.gnome.org/show_bug.cgi?id=747431" rel="nofollow noreferrer">a bug in GLib’s Python bindings</a>,不能简单地修复。你知道吗</p>
<p>相反,您应该使用<a href="https://developer.gnome.org/gio/stable/GMemoryInputStream.html#g-memory-input-stream-new-from-bytes" rel="nofollow noreferrer">^{<cd1>}</a>,它以不同的方式处理释放内存,并且不应该遭受相同的错误。你知道吗</p>
<hr/>
<p>更详细地说,<code>new_from_data()</code>的bug是由<a href="https://wiki.gnome.org/Projects/GObjectIntrospection/Annotations" rel="nofollow noreferrer">introspection annotations</a>引起的,GLib使用它来允许语言绑定自动公开其所有API,而不支持<code>new_from_data()</code>的<code>GDestroyNotify</code>参数,该参数需要设置为非<code>NULL</code>函数以释放传递给其他参数的分配内存。在<code>gdb</code>下运行脚本表明pygobject将<code>NULL</code>传递给<code>GDestroyNotify</code>参数。它做得再好不过了,因为目前没有办法表示<code>data</code>参数的内存管理语义依赖于传递给<code>destroy</code>的内容。你知道吗</p>