summaryrefslogtreecommitdiff
path: root/innobase/rem/rem0rec.c
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2004-12-28 01:34:52 +0200
committerunknown <marko@hundin.mysql.fi>2004-12-28 01:34:52 +0200
commit7ce58befd33d78e1c11872fcbc696a9cfad698c2 (patch)
tree6da5ac10b2bcc95fc1120e9a5d69928fdbe40917 /innobase/rem/rem0rec.c
parente3c7697431c144215af2f752d5c23b5b06e29982 (diff)
downloadmariadb-git-7ce58befd33d78e1c11872fcbc696a9cfad698c2.tar.gz
InnoDB: Fix some bugs in the new record format. (Bug #7493)
innobase/btr/btr0btr.c: Remove parameter n_fields from cmp_rec_rec() innobase/btr/btr0cur.c: Remove parameter n_fields from cmp_rec_rec_with_match() innobase/btr/btr0pcur.c: Remove parameter n_fields from cmp_rec_rec() innobase/include/rem0cmp.h: Remove parameter n from cmp_rec_rec_with_match() and cmp_rec_rec() innobase/include/rem0cmp.ic: Remove parameter n from cmp_rec_rec() innobase/include/rem0rec.ic: Correct the implementation of rec_offs_nth_size() (Bug #7493) innobase/page/page0page.c: Remove parameter n_fields from cmp_rec_rec() innobase/rem/rem0cmp.c: Remove parameter n from cmp_rec_rec_with_match() innobase/rem/rem0rec.c: rec_get_offsets(): Pass the number of allocated elements to rec_offs_set_n_alloc() instead of the number of allocated bytes, so that debugging assertions are more likely to detect out-of-bounds errors.
Diffstat (limited to 'innobase/rem/rem0rec.c')
-rw-r--r--innobase/rem/rem0rec.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/innobase/rem/rem0rec.c b/innobase/rem/rem0rec.c
index 74876ad9402..90cbffe7a9e 100644
--- a/innobase/rem/rem0rec.c
+++ b/innobase/rem/rem0rec.c
@@ -333,14 +333,14 @@ rec_get_offsets_func(
n = n_fields;
}
- size = (n + (1 + REC_OFFS_HEADER_SIZE)) * sizeof(ulint);
+ size = n + (1 + REC_OFFS_HEADER_SIZE);
if (!offsets || rec_offs_get_n_alloc(offsets) < size) {
if (!*heap) {
- *heap = mem_heap_create_func(size,
+ *heap = mem_heap_create_func(size * sizeof(ulint),
NULL, MEM_HEAP_DYNAMIC, file, line);
}
- offsets = mem_heap_alloc(*heap, size);
+ offsets = mem_heap_alloc(*heap, size * sizeof(ulint));
rec_offs_set_n_alloc(offsets, size);
}