Commit 75463050 authored by unknown's avatar unknown
Browse files

Ensure "bottom-up" order of "inline functions" within 'innobase/include/rem0rec.ic'.

This is a partial solution for bug#7464.


innobase/include/rem0rec.ic:
  On several platforms, "inline functions" must be coded before being used, in "bottom-up" order.
  Ensure this for 'rec_get_status' and 'rec_offs_n_fields'.
parent 6499169d
Loading
Loading
Loading
Loading
+39 −39
Original line number Diff line number Diff line
@@ -373,6 +373,26 @@ rec_set_n_fields_old(
		REC_OLD_N_FIELDS_MASK, REC_OLD_N_FIELDS_SHIFT);
}

/**********************************************************
The following function retrieves the status bits of a new-style record. */
UNIV_INLINE
ulint
rec_get_status(
/*===========*/
			/* out: status bits */
	rec_t*	rec)	/* in: physical record */
{
	ulint	ret;

	ut_ad(rec);

	ret = rec_get_bit_field_1(rec, REC_NEW_STATUS,
				REC_NEW_STATUS_MASK, REC_NEW_STATUS_SHIFT);
	ut_ad((ret & ~REC_NEW_STATUS_MASK) == 0);

	return(ret);
}

/**********************************************************
The following function is used to get the number of fields
in a record. */
@@ -484,26 +504,6 @@ rec_set_info_bits(
				REC_INFO_BITS_MASK, REC_INFO_BITS_SHIFT);
}

/**********************************************************
The following function retrieves the status bits of a new-style record. */
UNIV_INLINE
ulint
rec_get_status(
/*===========*/
			/* out: status bits */
	rec_t*	rec)	/* in: physical record */
{
	ulint	ret;

	ut_ad(rec);

	ret = rec_get_bit_field_1(rec, REC_NEW_STATUS,
				REC_NEW_STATUS_MASK, REC_NEW_STATUS_SHIFT);
	ut_ad((ret & ~REC_NEW_STATUS_MASK) == 0);

	return(ret);
}

/**********************************************************
The following function is used to set the status bits of a new-style record. */
UNIV_INLINE
@@ -756,6 +756,25 @@ rec_offs_set_n_alloc(
	offsets[0] = n_alloc;
}

/************************************************************** 
The following function returns the number of fields in a record. */
UNIV_INLINE
ulint
rec_offs_n_fields(
/*===============*/
				/* out: number of fields */
	const ulint*	offsets)/* in: array returned by rec_get_offsets() */
{
	ulint	n_fields;
	ut_ad(offsets);
	n_fields = offsets[1];
	ut_ad(n_fields > 0);
	ut_ad(n_fields <= REC_MAX_N_FIELDS);
	ut_ad(n_fields + REC_OFFS_HEADER_SIZE
		<= rec_offs_get_n_alloc(offsets));
	return(n_fields);
}

/****************************************************************
Validates offsets returned by rec_get_offsets(). */
UNIV_INLINE
@@ -1202,25 +1221,6 @@ rec_get_data_size_old(
	return(rec_get_field_start_offs(rec, rec_get_n_fields_old(rec)));
}

/************************************************************** 
The following function returns the number of fields in a record. */
UNIV_INLINE
ulint
rec_offs_n_fields(
/*===============*/
				/* out: number of fields */
	const ulint*	offsets)/* in: array returned by rec_get_offsets() */
{
	ulint	n_fields;
	ut_ad(offsets);
	n_fields = offsets[1];
	ut_ad(n_fields > 0);
	ut_ad(n_fields <= REC_MAX_N_FIELDS);
	ut_ad(n_fields + REC_OFFS_HEADER_SIZE
		<= rec_offs_get_n_alloc(offsets));
	return(n_fields);
}

/************************************************************** 
The following function sets the number of fields in offsets. */
UNIV_INLINE