From 1298c11d2fde07513c8d0ded13ced6a42c17f26b Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 24 Dec 2012 17:06:13 -0600 Subject: [PATCH] adjust find-string in text% so it doesn't allocate as many temporary strings Also, Rackety --- collects/mred/private/wxme/text.rkt | 8 +++++--- collects/tests/gracket/wxme.rkt | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/collects/mred/private/wxme/text.rkt b/collects/mred/private/wxme/text.rkt index e80a31f935..61e803929f 100644 --- a/collects/mred/private/wxme/text.rkt +++ b/collects/mred/private/wxme/text.rkt @@ -3592,7 +3592,7 @@ s)]) (vector-set! smap i s) (loop s (+ i direction))))))) - + (define text "") (let a-loop ([s beyond] [s-pos s-pos] [snip snip] @@ -3618,9 +3618,11 @@ [thisoffset (+ offset (if (direction . < . 0) need checked))] [wl? write-locked?] [fl? flow-locked?]) + (when (< (string-length text) (send snip get-count)) + (set! text (make-string (send snip get-count)))) (set! write-locked? #t) (set! flow-locked? #t) - (let ([text (send snip get-text thisoffset thistime #f)]) + (send snip get-text! text thisoffset thistime 0) (set! write-locked? wl?) (set! flow-locked? fl?) @@ -3684,7 +3686,7 @@ (c-loop (+ i direction) n s - results))))))))) + results)))))))) (if just-one? #f results))))))))))) diff --git a/collects/tests/gracket/wxme.rkt b/collects/tests/gracket/wxme.rkt index a569718ab6..4a04242ea9 100644 --- a/collects/tests/gracket/wxme.rkt +++ b/collects/tests/gracket/wxme.rkt @@ -1,6 +1,6 @@ -#lang scheme/base -(require scheme/class - (only-in scheme/gui/base +#lang racket/base +(require racket/class + (only-in racket/gui/base color% font% the-clipboard