t_bits alignment fix from Tatsuo Ishii

This commit is contained in:
Bruce Momjian 1998-09-04 18:05:39 +00:00
parent edd626cb3e
commit f93281a1a1
2 changed files with 8 additions and 6 deletions

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.41 1998/09/01 04:26:39 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.42 1998/09/04 18:05:38 momjian Exp $
* *
* NOTES * NOTES
* The old interface functions have been converted to macros * The old interface functions have been converted to macros
@ -809,7 +809,7 @@ heap_formtuple(TupleDesc tupleDescriptor,
int i; int i;
int numberOfAttributes = tupleDescriptor->natts; int numberOfAttributes = tupleDescriptor->natts;
len = sizeof *tuple - sizeof tuple->t_bits; len = offsetof(HeapTuple->t_bits);
for (i = 0; i < numberOfAttributes && !hasnull; i++) for (i = 0; i < numberOfAttributes && !hasnull; i++)
{ {
@ -957,7 +957,7 @@ heap_addheader(uint32 natts, /* max domain index */
AssertArg(natts > 0); AssertArg(natts > 0);
len = sizeof(HeapTupleData) - sizeof(tup->t_bits); len = offsetof(HeapTuple->t_bits);
hoff = len = DOUBLEALIGN(len); /* be conservative */ hoff = len = DOUBLEALIGN(len); /* be conservative */
len += structlen; len += structlen;

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.38 1998/09/01 04:31:56 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.39 1998/09/04 18:05:39 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -916,7 +916,9 @@ inv_wrold(LargeObjectDesc *obj_desc,
*/ */
/* /*
ntup = inv_newtuple(obj_desc, newbuf, newpage, (char *) NULL, tupbytes); 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); + sizeof(fsblock->vl_len);
if (obj_desc->offset > obj_desc->lowbyte) { if (obj_desc->offset > obj_desc->lowbyte) {
@ -996,7 +998,7 @@ inv_newtuple(LargeObjectDesc *obj_desc,
char *attptr; char *attptr;
/* compute tuple size -- no nulls */ /* 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 */ /* add in olastbyte, varlena.vl_len, varlena.vl_dat */
tupsize = hoff + (2 * sizeof(int32)) + nwrite; tupsize = hoff + (2 * sizeof(int32)) + nwrite;