diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index a7762eafcd0af2a6069a52d763e8fdbe6f65dafe..70b2e1cbeb8272b836f5b451f3c00568f4d8de16 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -8158,8 +8158,8 @@ RecoveryRestartPoint(const CheckPoint *checkPoint) * work out the next time it wants to perform a restartpoint. */ SpinLockAcquire(&xlogctl->info_lck); - XLogCtl->lastCheckPointRecPtr = ReadRecPtr; - memcpy(&XLogCtl->lastCheckPoint, checkPoint, sizeof(CheckPoint)); + xlogctl->lastCheckPointRecPtr = ReadRecPtr; + xlogctl->lastCheckPoint = *checkPoint; SpinLockRelease(&xlogctl->info_lck); } @@ -8194,7 +8194,7 @@ CreateRestartPoint(int flags) /* Get a local copy of the last safe checkpoint record. */ SpinLockAcquire(&xlogctl->info_lck); lastCheckPointRecPtr = xlogctl->lastCheckPointRecPtr; - memcpy(&lastCheckPoint, &XLogCtl->lastCheckPoint, sizeof(CheckPoint)); + lastCheckPoint = xlogctl->lastCheckPoint; SpinLockRelease(&xlogctl->info_lck); /*