From 7bfdf5444146ed3b1e22d538287b1a3c9a3750fe Mon Sep 17 00:00:00 2001 From: "James P. Howard, II" Date: Tue, 4 Feb 2003 03:04:50 +0000 Subject: [PATCH] Patch from Sean Farley: Basically, the dirty trick I used here was to remove some pointer traversals in expensive spots. --- mmfile.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mmfile.c b/mmfile.c index b0ff0bb..e803c42 100755 --- a/mmfile.c +++ b/mmfile.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mmfile.c,v 1.1 2002/09/14 16:30:18 howardjp Exp $ + * $Id: mmfile.c,v 1.2 2003/02/04 03:04:50 howardjp Exp $ */ #include @@ -85,14 +85,16 @@ char * mmfgetln(mmf_t *mmf, size_t *l) { static char *p; + char *start = mmf->ptr; // Remove speed bump + char *end = mmf->end; // Remove speed bump - if (mmf->ptr >= mmf->end) + if (start >= end) return NULL; - for (p = mmf->ptr; mmf->ptr < mmf->end; ++mmf->ptr) - if (*mmf->ptr == '\n') + for (p = start; start < end; ++start) + if (*start == '\n') break; - *l = mmf->ptr - p; - ++mmf->ptr; + *l = start - p; + mmf->ptr = start + 1; return p; }