t_bits alignment fix from Tatsuo Ishii
authorBruce Momjian <bruce@momjian.us>
Fri, 4 Sep 1998 18:05:39 +0000 (18:05 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 4 Sep 1998 18:05:39 +0000 (18:05 +0000)
src/backend/access/common/heaptuple.c
src/backend/storage/large_object/inv_api.c

index b942fc786174f1902c11caa070b863ae4f9f5415..2f28905cece55637b94b4a1425a5d83842563f1a 100644 (file)
@@ -809,7 +809,7 @@ heap_formtuple(TupleDesc tupleDescriptor,
        int                     i;
        int                     numberOfAttributes = tupleDescriptor->natts;
 
-       len = sizeof *tuple - sizeof tuple->t_bits;
+       len = offsetof(HeapTuple->t_bits);
 
        for (i = 0; i < numberOfAttributes && !hasnull; i++)
        {
@@ -957,7 +957,7 @@ heap_addheader(uint32 natts,        /* max domain index */
 
        AssertArg(natts > 0);
 
-       len = sizeof(HeapTupleData) - sizeof(tup->t_bits);
+       len = offsetof(HeapTuple->t_bits);
 
        hoff = len = DOUBLEALIGN(len);          /* be conservative */
        len += structlen;
index 753ebaade2e59a64f9b1479b94f593e6d00ed998..88671f5f559e9b6757db94f43202c35b3ea84e75 100644 (file)
@@ -916,7 +916,9 @@ inv_wrold(LargeObjectDesc *obj_desc,
         */
 /*
        ntup = inv_newtuple(obj_desc, newbuf, newpage, (char *) NULL, tupbytes);
-       dptr = ((char *) ntup) + ntup->t_hoff - sizeof(ntup->t_bits) + sizeof(int4)
+       dptr = ((char *) ntup) + ntup->t_hoff -
+                               (sizeof(HeapTupleData) - offsetof(HeapTupleData.t_bits)) +
+                               sizeof(int4)
                                + sizeof(fsblock->vl_len);
 
        if (obj_desc->offset > obj_desc->lowbyte) {
@@ -996,7 +998,7 @@ inv_newtuple(LargeObjectDesc *obj_desc,
        char       *attptr;
 
        /* compute tuple size -- no nulls */
-       hoff = sizeof(HeapTupleData) - sizeof(ntup->t_bits);
+       hoff = offsetof(HeapTuple->t_bits);
 
        /* add in olastbyte, varlena.vl_len, varlena.vl_dat */
        tupsize = hoff + (2 * sizeof(int32)) + nwrite;