summaryrefslogtreecommitdiff
path: root/innobase/fsp
diff options
context:
space:
mode:
authorunknown <greg@mysql.com>2003-09-04 16:00:05 -0400
committerunknown <greg@mysql.com>2003-09-04 16:00:05 -0400
commita4caa4cc5749a214c281bd3c0fa862982828bf51 (patch)
tree34730376437079e8ed45b5231aeb826e0b211737 /innobase/fsp
parent3fae96510282708e556634eca9d1b71a18f3d645 (diff)
downloadmariadb-git-a4caa4cc5749a214c281bd3c0fa862982828bf51.tar.gz
Windows fix to avoid VC++ 6.0 compiler bug, which prevents compilation when function calls are present inside an expanded inline function
innobase/fsp/fsp0fsp.c: Added seperate error message to avoid VC++ 6.0 compiler bug
Diffstat (limited to 'innobase/fsp')
-rw-r--r--innobase/fsp/fsp0fsp.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/innobase/fsp/fsp0fsp.c b/innobase/fsp/fsp0fsp.c
index 20bf4972f64..8727c5156e4 100644
--- a/innobase/fsp/fsp0fsp.c
+++ b/innobase/fsp/fsp0fsp.c
@@ -2656,7 +2656,13 @@ fseg_free_page_low(
ulint not_full_n_used;
ulint state;
ulint i;
- char errbuf[200];
+ char errbuf[200];
+
+#ifdef __WIN__
+ dulint desm;
+ dulint segm;
+#endif
+
ut_ad(seg_inode && mtr);
ut_ad(mach_read_from_4(seg_inode + FSEG_MAGIC_N) ==
@@ -2736,7 +2742,10 @@ fseg_free_page_low(
fprintf(stderr,
"InnoDB: Dump of the segment inode: %s\n", errbuf);
- fprintf(stderr,
+
+#ifndef __WIN__
+
+ fprintf(stderr,
"InnoDB: Serious error: InnoDB is trying to free space %lu page %lu,\n"
"InnoDB: which does not belong to segment %lu %lu but belongs\n"
"InnoDB: to segment %lu %lu.\n",
@@ -2750,6 +2759,26 @@ fseg_free_page_low(
ut_dulint_get_low(
mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr)));
+#else
+
+/* More pedantic usage to avoid VC++ 6.0 compiler errors due to inline
+ function expansion issues */
+
+ desm = mtr_read_dulint(descr + XDES_ID, MLOG_8BYTES, mtr);
+ segm = mtr_read_dulint(seg_inode + FSEG_ID, MLOG_8BYTES, mtr);
+
+ fprintf(stderr,
+"InnoDB: Serious error: InnoDB is trying to free space %lu page %lu,\n"
+"InnoDB: which does not belong to segment %lu %lu but belongs\n"
+"InnoDB: to segment %lu %lu.\n",
+ space, page,
+ ut_dulint_get_high(desm),
+ ut_dulint_get_low(desm),
+ ut_dulint_get_high(segm),
+ ut_dulint_get_low(segm));
+
+#endif
+
fprintf(stderr,
"InnoDB: If the InnoDB recovery crashes here, see section 6.1\n"
"InnoDB: of http://www.innodb.com/ibman.html about forcing recovery.\n");