diff --git a/src/backend/executor/nodeTidscan.c b/src/backend/executor/nodeTidscan.c
index 2604103..d54fe36 100644
--- a/src/backend/executor/nodeTidscan.c
+++ b/src/backend/executor/nodeTidscan.c
@@ -139,7 +139,7 @@ TidListCreate(TidScanState *tidstate)
 				continue;
 			itemarray = DatumGetArrayTypeP(arraydatum);
 			deconstruct_array(itemarray,
-							  TIDOID, SizeOfIptrData, false, 's',
+							  TIDOID, sizeof(ItemPointerData), false, 's',
 							  &ipdatums, &ipnulls, &ndatums);
 			if (numTids + ndatums > numAllocTids)
 			{
diff --git a/src/include/storage/itemptr.h b/src/include/storage/itemptr.h
index 7ec7ed3..5ed8ede 100644
--- a/src/include/storage/itemptr.h
+++ b/src/include/storage/itemptr.h
@@ -24,15 +24,6 @@
  * (for example, a cross-link from an index to its parent table).
  * blkid tells us which block, posid tells us which entry in the linp
  * (ItemIdData) array we want.
- *
- * Note: because there is an item pointer in each tuple header and index
- * tuple header on disk, it's very important not to waste space with
- * structure padding bytes.  The struct is designed to be six bytes long
- * (it contains three int16 fields) but a few compilers will pad it to
- * eight bytes unless coerced.  We apply appropriate persuasion where
- * possible, and to cope with unpersuadable compilers, we try to use
- * "SizeOfIptrData" rather than "sizeof(ItemPointerData)" when computing
- * on-disk sizes.
  */
 typedef struct ItemPointerData
 {
@@ -46,9 +37,6 @@ pg_attribute_aligned(2)
 #endif
 ItemPointerData;
 
-#define SizeOfIptrData	\
-	(offsetof(ItemPointerData, ip_posid) + sizeof(OffsetNumber))
-
 typedef ItemPointerData *ItemPointer;
 
 /* ----------------
