From dca81a78f8db18a89fb207df41679c41ec222a90 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 8 Aug 2004 04:57:06 +0000 Subject: [PATCH] uniqstr wasn't being used for handle_syncline like it should. --- ChangeLog | 7 +++++++ src/location.h | 8 +++++--- src/scan-gram.l | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f38696c..e246ae1c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-08-07 Florian Krohm + + * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup. + + * src/location.h (struct): The file member is a uniqstr. + (equal_boundaries): Use UNIQSTR_EQ for comparison. + 2004-07-22 Paul Eggert Fix bug with non-%union parsers that have printers or destructors, diff --git a/src/location.h b/src/location.h index f4fbb2f8..3bdf93c3 100644 --- a/src/location.h +++ b/src/location.h @@ -1,5 +1,5 @@ /* Locations for Bison - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -21,11 +21,13 @@ #ifndef LOCATION_H_ # define LOCATION_H_ +# include "uniqstr.h" + /* A boundary between two characters. */ typedef struct { /* The name of the file that contains the boundary. */ - char const *file; + uniqstr file; /* The (origin-1) line that contains the boundary. */ int line; @@ -42,7 +44,7 @@ equal_boundaries (boundary a, boundary b) { return (a.column == b.column && a.line == b.line - && a.file == b.file); + && UNIQSTR_EQ (a.file, b.file)); } /* A location, that is, a region of source code. */ diff --git a/src/scan-gram.l b/src/scan-gram.l index 77c304f2..7541bf9f 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -1003,7 +1003,7 @@ handle_syncline (char *args) const char *file = NULL; file = strchr (args, '"') + 1; *strchr (file, '"') = 0; - scanner_cursor.file = current_file = xstrdup (file); + scanner_cursor.file = current_file = uniqstr_new (file); scanner_cursor.line = lineno; scanner_cursor.column = 1; } -- 2.45.2