From 157a96aa4b074d07e4391a1731d75d4eb594087f Mon Sep 17 00:00:00 2001 From: Fabien Costantini Date: Sat, 21 Apr 2012 15:05:00 +0000 Subject: STR2783: make potential null string substituted to an empty string, still achieve internal cleanup in Fl_Text_Buffer::text(s) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9366 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_Text_Buffer.H | 2 +- src/Fl_Text_Buffer.cxx | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/FL/Fl_Text_Buffer.H b/FL/Fl_Text_Buffer.H index 36532d4d4..fbec504a6 100644 --- a/FL/Fl_Text_Buffer.H +++ b/FL/Fl_Text_Buffer.H @@ -188,7 +188,7 @@ public: /** Replaces the entire contents of the text buffer. - \param text Text must be valid utf8. + \param text Text must be valid utf8. if null an empty string is substituted. */ void text(const char* text); diff --git a/src/Fl_Text_Buffer.cxx b/src/Fl_Text_Buffer.cxx index 5b2f3a314..f2aaeb6c8 100644 --- a/src/Fl_Text_Buffer.cxx +++ b/src/Fl_Text_Buffer.cxx @@ -165,7 +165,11 @@ char *Fl_Text_Buffer::text() const { void Fl_Text_Buffer::text(const char *t) { IS_UTF8_ALIGNED(t) - + + // if t is null then substitute it with an empty string + // then don't return so that internal cleanup can happen + if (!t) t=""; + call_predelete_callbacks(0, length()); /* Save information for redisplay, and get rid of the old buffer */ -- cgit v1.2.3