From 05d78d765e286bbde3d24c5b867a53544cb7698c Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Thu, 27 Oct 2011 08:21:10 -0400 Subject: volatile-ize. --- src/backend/storage/ipc/snaparray.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/backend/storage/ipc/snaparray.c b/src/backend/storage/ipc/snaparray.c index 79eec1c586..27aa73375b 100644 --- a/src/backend/storage/ipc/snaparray.c +++ b/src/backend/storage/ipc/snaparray.c @@ -114,7 +114,7 @@ typedef struct TransactionId *buffer; } SnapArrayCacheStruct; -static SnapArrayStruct *SnapArray; +static volatile SnapArrayStruct *SnapArray; static SnapArrayCacheStruct SnapArrayCache; static TransactionId xid_cmp_base; @@ -1437,16 +1437,16 @@ SnapArrayReadData(uint64 start_location, uint64 stop_location, start_location %= SnapArray->ring_buffer_size; if (start_location + nxids <= (uint64) SnapArray->ring_buffer_size) - memcpy(buffer, &SnapArray->buffer[start_location], + memcpy(buffer, (void *) &SnapArray->buffer[start_location], nxids * sizeof(TransactionId)); else { uint64 entries_before_wrap; entries_before_wrap = SnapArray->ring_buffer_size - start_location; - memcpy(buffer, &SnapArray->buffer[start_location], + memcpy(buffer, (void *) &SnapArray->buffer[start_location], entries_before_wrap * sizeof(TransactionId)); - memcpy(buffer + entries_before_wrap, SnapArray->buffer, + memcpy(buffer + entries_before_wrap, (void *) SnapArray->buffer, (nxids - entries_before_wrap) * sizeof(TransactionId)); } } @@ -1479,7 +1479,7 @@ SnapArrayWriteData(uint64 write_location, uint32 nitems, TransactionId *item) { write_location %= SnapArray->ring_buffer_size; if (write_location + nitems <= SnapArray->ring_buffer_size) - memcpy(&SnapArray->buffer[write_location], item, + memcpy((void *) &SnapArray->buffer[write_location], item, nitems * sizeof(TransactionId)); else { @@ -1493,9 +1493,9 @@ SnapArrayWriteData(uint64 write_location, uint32 nitems, TransactionId *item) Assert(nitems <= SnapArray->ring_buffer_size); entries_before_wrap = SnapArray->ring_buffer_size - write_location; - memcpy(&SnapArray->buffer[write_location], item, + memcpy((void *) &SnapArray->buffer[write_location], item, entries_before_wrap * sizeof(TransactionId)); - memcpy(SnapArray->buffer, item + entries_before_wrap, + memcpy((void *) SnapArray->buffer, item + entries_before_wrap, (nitems - entries_before_wrap) * sizeof(TransactionId)); } } -- cgit v1.2.3