diff options
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/include/dyn0dyn.h | 9 | ||||
-rw-r--r-- | innobase/include/dyn0dyn.ic | 4 |
2 files changed, 5 insertions, 8 deletions
diff --git a/innobase/include/dyn0dyn.h b/innobase/include/dyn0dyn.h index 332622b6d4c..6f08da1533b 100644 --- a/innobase/include/dyn0dyn.h +++ b/innobase/include/dyn0dyn.h @@ -17,13 +17,8 @@ typedef struct dyn_block_struct dyn_block_t; typedef dyn_block_t dyn_array_t; -/* Initial 'payload' size in bytes in a dynamic array block */ -#ifndef _AIX -#define DYN_ARRAY_DATA_SIZE 1024 -#else -/* AIX has a quite small stack / thread */ -#define DYN_ARRAY_DATA_SIZE 128 -#endif +/* This must be > MLOG_BUF_MARGIN + 30 */ +#define DYN_ARRAY_DATA_SIZE 512 /************************************************************************* Initializes a dynamic array. */ diff --git a/innobase/include/dyn0dyn.ic b/innobase/include/dyn0dyn.ic index dc004efbb8b..787615cae09 100644 --- a/innobase/include/dyn0dyn.ic +++ b/innobase/include/dyn0dyn.ic @@ -185,7 +185,8 @@ dyn_array_open( /*===========*/ /* out: pointer to the buffer */ dyn_array_t* arr, /* in: dynamic array */ - ulint size) /* in: size in bytes of the buffer */ + ulint size) /* in: size in bytes of the buffer; MUST be + smaller than DYN_ARRAY_DATA_SIZE! */ { dyn_block_t* block; ulint used; @@ -207,6 +208,7 @@ dyn_array_open( if (used + size > DYN_ARRAY_DATA_SIZE) { block = dyn_array_add_block(arr); used = block->used; + ut_a(size <= DYN_ARRAY_DATA_SIZE); } } |