From 4dd43e8600e73462ea4e7f5ed86d3adfe7c354bd Mon Sep 17 00:00:00 2001
From: Arne Goedeke <el@laramies.com>
Date: Mon, 10 Jun 2013 00:17:44 +0200
Subject: [PATCH] use string range information to optimize replace

---
 src/stralloc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/stralloc.c b/src/stralloc.c
index d24e5b1314..f952cf8530 100644
--- a/src/stralloc.c
+++ b/src/stralloc.c
@@ -2216,10 +2216,10 @@ PMOD_EXPORT struct pike_string *string_replace(struct pike_string *str,
   ONERROR mojt_uwp;
   replace_searchfunc f = (replace_searchfunc)0;
 
-  if(!str->len)
+  if(!str->len || !string_range_contains_string(str, del))
   {
-    add_ref(empty_pike_string);
-    return empty_pike_string;
+    add_ref(str);
+    return str;
   }
 
   shift=MAXIMUM(str->size_shift,to->size_shift);
-- 
GitLab