@matheusbsbs / matheus-bagliano / commits / c8c073c420
Fork 0

xdiff/xmerge.c: use memset() instead of explicit for-loop

memset() is heavily optimized, and resulting assembler code is about 150 lines less for that file. Signed-off-by: Alexey Mahotkin <squadette@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Alexey Mahotkin committed Apr 28, 2010 at 15:29 UTC c8c073c4201600b958f5d3bd9e8051b2060bd3f7
1 file changed +8 -9
xdiff/xmerge.c
+8 -9
@@ -152,7 +152,6 @@ static int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,
152 int marker1_size = (name1 ? strlen(name1) + 1 : 0);
153 int marker2_size = (name2 ? strlen(name2) + 1 : 0);
154 int marker3_size = (name3 ? strlen(name3) + 1 : 0);
155 - int j;
155
156 if (marker_size <= 0)
157 marker_size = DEFAULT_CONFLICT_MARKER_SIZE;
@@ -164,8 +163,8 @@ static int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,
163 if (!dest) {
164 size += marker_size + 1 + marker1_size;
165 } else {
167 - for (j = 0; j < marker_size; j++)
168 - dest[size++] = '<';
166 + memset(dest + size, '<', marker_size);
167 + size += marker_size;
168 if (marker1_size) {
169 dest[size] = ' ';
170 memcpy(dest + size + 1, name1, marker1_size - 1);
@@ -183,8 +182,8 @@ static int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,
182 if (!dest) {
183 size += marker_size + 1 + marker3_size;
184 } else {
186 - for (j = 0; j < marker_size; j++)
187 - dest[size++] = '|';
185 + memset(dest + size, '|', marker_size);
186 + size += marker_size;
187 if (marker3_size) {
188 dest[size] = ' ';
189 memcpy(dest + size + 1, name3, marker3_size - 1);
@@ -199,8 +198,8 @@ static int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,
198 if (!dest) {
199 size += marker_size + 1;
200 } else {
202 - for (j = 0; j < marker_size; j++)
203 - dest[size++] = '=';
201 + memset(dest + size, '=', marker_size);
202 + size += marker_size;
203 dest[size++] = '\n';
204 }
205
@@ -210,8 +209,8 @@ static int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,
209 if (!dest) {
210 size += marker_size + 1 + marker2_size;
211 } else {
213 - for (j = 0; j < marker_size; j++)
214 - dest[size++] = '>';
212 + memset(dest + size, '>', marker_size);
213 + size += marker_size;
214 if (marker2_size) {
215 dest[size] = ' ';
216 memcpy(dest + size + 1, name2, marker2_size - 1);