[gtkmm] TextMark: Avoid creating a RefPtr to this.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm] TextMark: Avoid creating a RefPtr to this.
- Date: Fri, 7 Apr 2017 12:53:07 +0000 (UTC)
commit 2bd01a4c421e97b359c47e7b46e3a83f0a852183
Author: Murray Cumming <murrayc murrayc com>
Date: Wed Apr 5 13:33:47 2017 +0200
TextMark: Avoid creating a RefPtr to this.
By adding a private TextBuffer::get_iter_at_mark(), accessible
via a friend declaration, that takes the raw GTextMark.
See https://bugzilla.gnome.org/show_bug.cgi?id=755037#c21
gtk/src/textbuffer.ccg | 7 +++++++
gtk/src/textbuffer.hg | 5 +++++
gtk/src/textmark.ccg | 4 +---
3 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/gtk/src/textbuffer.ccg b/gtk/src/textbuffer.ccg
index a2bb360..c7d2aa0 100644
--- a/gtk/src/textbuffer.ccg
+++ b/gtk/src/textbuffer.ccg
@@ -208,6 +208,13 @@ TextBuffer::iterator TextBuffer::get_iter_at_mark(const Glib::RefPtr<Mark>& mark
return iter;
}
+TextBuffer::iterator TextBuffer::get_iter_at_mark(GtkTextMark* mark)
+{
+ iterator iter;
+ gtk_text_buffer_get_iter_at_mark(gobj(), iter.gobj(), mark);
+ return iter;
+}
+
TextBuffer::const_iterator TextBuffer::get_iter_at_mark(const Glib::RefPtr<Mark>& mark) const
{
return const_cast<TextBuffer*>(this)->get_iter_at_mark(mark);
diff --git a/gtk/src/textbuffer.hg b/gtk/src/textbuffer.hg
index 721f251..c2e3b06 100644
--- a/gtk/src/textbuffer.hg
+++ b/gtk/src/textbuffer.hg
@@ -622,6 +622,11 @@ _CONVERSION(`GtkTextIter*',`TextBuffer::iterator&',Glib::wrap_iter($3))
_WRAP_PROPERTY("cursor-position", int)
_WRAP_PROPERTY("copy-target-list", Glib::RefPtr<TargetList>)
_WRAP_PROPERTY("paste-target-list", Glib::RefPtr<TargetList>)
+
+private:
+ friend TextMark;
+
+ iterator get_iter_at_mark(GtkTextMark* mark);
};
} // namespace Gtk
diff --git a/gtk/src/textmark.ccg b/gtk/src/textmark.ccg
index aa5b74f..bad1220 100644
--- a/gtk/src/textmark.ccg
+++ b/gtk/src/textmark.ccg
@@ -32,9 +32,7 @@ TextMark::TextMark(bool left_gravity)
TextIter TextMark::get_iter()
{
- auto mark = Glib::RefPtr<TextMark>(this);
- mark->reference(); // RefPtr (T_CppObject* pCppObject) does not do a reference
- return get_buffer()->get_iter_at_mark(mark);
+ return get_buffer()->get_iter_at_mark(gobj());
}
TextConstIter TextMark::get_iter() const
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]