@@ -61,12 +61,6 @@ struct hashmap {
6161 * initially, "next" reflects only the order in file1.
6262 */
6363 struct entry * next , * previous ;
64-
65- /*
66- * If 1, this entry can serve as an anchor. See
67- * Documentation/diff-options.adoc for more information.
68- */
69- unsigned anchor : 1 ;
7064 } * entries , * first , * last ;
7165 /* were common records found? */
7266 unsigned long has_matches ;
@@ -85,8 +79,7 @@ static int is_anchor(xpparam_t const *xpp, const char *line)
8579}
8680
8781/* The argument "pass" is 1 for the first file, 2 for the second. */
88- static void insert_record (xpparam_t const * xpp , int line , struct hashmap * map ,
89- int pass )
82+ static void insert_record (int line , struct hashmap * map , int pass )
9083{
9184 xrecord_t * records = pass == 1 ?
9285 map -> env -> xdf1 .recs : map -> env -> xdf2 .recs ;
@@ -121,7 +114,6 @@ static void insert_record(xpparam_t const *xpp, int line, struct hashmap *map,
121114 return ;
122115 map -> entries [index ].line1 = line ;
123116 map -> entries [index ].minimal_perfect_hash = record -> minimal_perfect_hash ;
124- map -> entries [index ].anchor = is_anchor (xpp , (const char * )map -> env -> xdf1 .recs [line - 1 ].ptr );
125117 if (!map -> first )
126118 map -> first = map -> entries + index ;
127119 if (map -> last ) {
@@ -153,11 +145,11 @@ static int fill_hashmap(xpparam_t const *xpp, xdfenv_t *env,
153145
154146 /* First, fill with entries from the first file */
155147 while (count1 -- )
156- insert_record (xpp , line1 ++ , result , 1 );
148+ insert_record (line1 ++ , result , 1 );
157149
158150 /* Then search for matches in the second file */
159151 while (count2 -- )
160- insert_record (xpp , line2 ++ , result , 2 );
152+ insert_record (line2 ++ , result , 2 );
161153
162154 return 0 ;
163155}
@@ -194,6 +186,8 @@ static int binary_search(struct entry **sequence, int longest,
194186 */
195187static int find_longest_common_sequence (struct hashmap * map , struct entry * * res )
196188{
189+ xpparam_t const * xpp = map -> xpp ;
190+ xrecord_t const * recs = map -> env -> xdf2 .recs ;
197191 struct entry * * sequence ;
198192 int longest = 0 , i ;
199193 struct entry * entry ;
@@ -220,7 +214,7 @@ static int find_longest_common_sequence(struct hashmap *map, struct entry **res)
220214 if (i <= anchor_i )
221215 continue ;
222216 sequence [i ] = entry ;
223- if (entry -> anchor ) {
217+ if (is_anchor ( xpp , ( const char * ) recs [ entry -> line2 - 1 ]. ptr ) ) {
224218 anchor_i = i ;
225219 longest = anchor_i + 1 ;
226220 } else if (i == longest ) {
0 commit comments