Invalid Text Buffer Iterator seen with completions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Gedit Developer Plugins |
Fix Released
|
High
|
Curtis Hovey |
Bug Description
When the completions view appears, this error is seen on the command line. The application works. This issue does not happen with the word completion plugin. GDP Completions does set marks. It does not think it is changing the buffer. The error is not caused by continued typing. Control-<space> triggers the error. Selecting a completion causes the error. The word at the cursor is automatically selected when the completion view appears; the bug might be in the hook to choose a completion or be in the completion view itself.
(gedit:7793): Gtk-WARNING **: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/
You must use marks, character numbers, or line numbers to preserve a position across buffer modifications.
You can apply tags and insert marks without invalidating your iterators,
but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset)
will invalidate all outstanding iterators
(gedit:7793): Gtk-CRITICAL **: gtk_text_
(gedit:7793): Gtk-WARNING **: Invalid text buffer iterator: either the iterator is uninitialized, or the characters/
You must use marks, character numbers, or line numbers to preserve a position across buffer modifications.
You can apply tags and insert marks without invalidating your iterators,
but any mutation that affects 'indexable' buffer contents (contents that can be referred to by character offset)
will invalidate all outstanding iterators
(gedit:7793): Gtk-CRITICAL **: gtk_text_
Changed in gdp: | |
status: | Triaged → In Progress |
Changed in gdp: | |
status: | In Progress → Fix Committed |
Changed in gdp: | |
status: | Fix Committed → Fix Released |
The appears when a proposal is selected, selecting a proposal generates the error. do_get_start_iter() is called just before the C code takes over, and it calls gtk_text_ buffer_ get_iter_ at_mark( ) that guarantees a new iter. Maybe the completion was initialized with a stale iter, but since the plugin uses marks to indicate where the cursor and word is in the doc, it seem unlikely that code or user could have changed the document.