GtkTextIter.backward_find_char()中的“Unhandled type tag gunichar”错误

时间:2015-12-03 05:31:56

标签: python python-2.7 gtk gtk3 pygobject

我一直在与这个错误斗争一段时间,我最终认为它可能是GTK +的Python绑定方面的一个错误,因为这个代码适用于PyGTK(版本2)。

我将我的申请简化为以下摘录。它只是用一些汇编程序代码创建一个缓冲区,获取一个迭代器(它恰好在get_iter_at_location()调用之后结束)并尝试向后搜索

中的字符
[' ', ',', '\t', '\n', '(', ')']

当我调用backward_find_char()时,Python大喊大叫:

** (XXXX.py:22748): WARNING **: Unhandled type tag gunichar

每个字符一次,并且不传递给GtkTextCharPredicate函数is_word_sep()。我现在怀疑它是一个缺少的标题/在类的Python定义中的任何内容(https://developer.gnome.org/gtk3/stable/GtkTextIter.html#GtkTextCharPredicate,我可以看到gunichar作为第一个参数),但我还不确定。

这是在使用gir1.2-gtksource-3.0的Debian测试中发生的3.18.1-1

import gi
gi.require_version('GtkSource', '3.0')
from gi.repository import GtkSource

def is_word_sep(x, bogus):
    print('is_word_sep called with %s, %s' % (x, bogus))
    word_separators = [' ', ',', '\t', '\n', '(', ')']
    return x in word_separators

text = '''
  ;      [11] va=0x00400450 pa=0x00000450 sz=80 vsz=80 rwx=-r-x .plt
  |- loc.00400450 12
  | 0x00400450    ff 35 32 05 20 00  push qword [rip+0x200532]
  \ 0x00400456    ff 25 34 05 20 00  jmp qword [rip+0x200534]
  / (fcn) fcn.0040045c 10
  | 0x0040045c    0f 1f 40 00        nop [rax]
  / (fcn) sym.imp.strlen 6
  | 0x00400460    ff 25 32 05 20 00  jmp qword [rip+0x200532]
  / (fcn) fcn.00400466 16
  | 0x00400466    68 00 00 00 00     push 0x0
  | 0x0040046b    e9 e0 ff ff ff     jmp loc.00400450
'''
a = GtkSource.Buffer()
view = GtkSource.View.new_with_buffer(a)
a.set_text(text)
# Get textiter at coordinates.
start_iter = view.get_iter_at_location(10, 10)

ret = start_iter.backward_find_char(is_word_sep)

有什么想法吗?

0 个答案:

没有答案