Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8b5c6a5

Browse files
committed
Replace gratuitous memmove() with memcpy()
The index access methods all had similar code that copied the passed-in scan keys to local storage. They all used memmove() for that, which is not wrong, but it seems confusing not to use memcpy() when that would work. Presumably, this was all once copied from ancient code and never adjusted. Discussion: https://www.postgresql.org/message-id/flat/f8c739d9-f48d-4187-b214-df3391ba41ab@eisentraut.org
1 parent 8422656 commit 8b5c6a5

File tree

7 files changed

+9
-26
lines changed

7 files changed

+9
-26
lines changed

contrib/bloom/blscan.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,7 @@ blrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
5555
so->sign = NULL;
5656

5757
if (scankey && scan->numberOfKeys > 0)
58-
{
59-
memmove(scan->keyData, scankey,
60-
scan->numberOfKeys * sizeof(ScanKeyData));
61-
}
58+
memcpy(scan->keyData, scankey, scan->numberOfKeys * sizeof(ScanKeyData));
6259
}
6360

6461
/*

src/backend/access/brin/brin.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -956,8 +956,7 @@ brinrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
956956
*/
957957

958958
if (scankey && scan->numberOfKeys > 0)
959-
memmove(scan->keyData, scankey,
960-
scan->numberOfKeys * sizeof(ScanKeyData));
959+
memcpy(scan->keyData, scankey, scan->numberOfKeys * sizeof(ScanKeyData));
961960
}
962961

963962
/*

src/backend/access/gin/ginscan.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -447,10 +447,7 @@ ginrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
447447
ginFreeScanKeys(so);
448448

449449
if (scankey && scan->numberOfKeys > 0)
450-
{
451-
memmove(scan->keyData, scankey,
452-
scan->numberOfKeys * sizeof(ScanKeyData));
453-
}
450+
memcpy(scan->keyData, scankey, scan->numberOfKeys * sizeof(ScanKeyData));
454451
}
455452

456453

src/backend/access/gist/gistscan.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,7 @@ gistrescan(IndexScanDesc scan, ScanKey key, int nkeys,
233233
fn_extras[i] = scan->keyData[i].sk_func.fn_extra;
234234
}
235235

236-
memmove(scan->keyData, key,
237-
scan->numberOfKeys * sizeof(ScanKeyData));
236+
memcpy(scan->keyData, key, scan->numberOfKeys * sizeof(ScanKeyData));
238237

239238
/*
240239
* Modify the scan key so that the Consistent method is called for all
@@ -289,8 +288,7 @@ gistrescan(IndexScanDesc scan, ScanKey key, int nkeys,
289288
fn_extras[i] = scan->orderByData[i].sk_func.fn_extra;
290289
}
291290

292-
memmove(scan->orderByData, orderbys,
293-
scan->numberOfOrderBys * sizeof(ScanKeyData));
291+
memcpy(scan->orderByData, orderbys, scan->numberOfOrderBys * sizeof(ScanKeyData));
294292

295293
so->orderByTypes = (Oid *) palloc(scan->numberOfOrderBys * sizeof(Oid));
296294

src/backend/access/hash/hash.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -415,11 +415,7 @@ hashrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
415415

416416
/* Update scan key, if a new one is given */
417417
if (scankey && scan->numberOfKeys > 0)
418-
{
419-
memmove(scan->keyData,
420-
scankey,
421-
scan->numberOfKeys * sizeof(ScanKeyData));
422-
}
418+
memcpy(scan->keyData, scankey, scan->numberOfKeys * sizeof(ScanKeyData));
423419

424420
so->hashso_buc_populated = false;
425421
so->hashso_buc_split = false;

src/backend/access/nbtree/nbtree.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -404,9 +404,7 @@ btrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
404404
* Reset the scan keys
405405
*/
406406
if (scankey && scan->numberOfKeys > 0)
407-
memmove(scan->keyData,
408-
scankey,
409-
scan->numberOfKeys * sizeof(ScanKeyData));
407+
memcpy(scan->keyData, scankey, scan->numberOfKeys * sizeof(ScanKeyData));
410408
so->numberOfKeys = 0; /* until _bt_preprocess_keys sets it */
411409
so->numArrayKeys = 0; /* ditto */
412410
}

src/backend/access/spgist/spgscan.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -384,16 +384,14 @@ spgrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
384384

385385
/* copy scankeys into local storage */
386386
if (scankey && scan->numberOfKeys > 0)
387-
memmove(scan->keyData, scankey,
388-
scan->numberOfKeys * sizeof(ScanKeyData));
387+
memcpy(scan->keyData, scankey, scan->numberOfKeys * sizeof(ScanKeyData));
389388

390389
/* initialize order-by data if needed */
391390
if (orderbys && scan->numberOfOrderBys > 0)
392391
{
393392
int i;
394393

395-
memmove(scan->orderByData, orderbys,
396-
scan->numberOfOrderBys * sizeof(ScanKeyData));
394+
memcpy(scan->orderByData, orderbys, scan->numberOfOrderBys * sizeof(ScanKeyData));
397395

398396
for (i = 0; i < scan->numberOfOrderBys; i++)
399397
{

0 commit comments

Comments
 (0)