Commit 5ea471bd authored by Jon Olav Hauglid's avatar Jon Olav Hauglid

Merge from mysql-5.5-bugteam to mysql-5.5-runtime

No conflicts
parents 192ee935 69aea87d
...@@ -3739,7 +3739,8 @@ print_tab_data(MYSQL_RES *result) ...@@ -3739,7 +3739,8 @@ print_tab_data(MYSQL_RES *result)
} }
static int static int
com_tee(String *buffer, char *line __attribute__((unused))) com_tee(String *buffer __attribute__((unused)),
char *line __attribute__((unused)))
{ {
char file_name[FN_REFLEN], *end, *param; char file_name[FN_REFLEN], *end, *param;
...@@ -3798,7 +3799,8 @@ com_notee(String *buffer __attribute__((unused)), ...@@ -3798,7 +3799,8 @@ com_notee(String *buffer __attribute__((unused)),
#ifdef USE_POPEN #ifdef USE_POPEN
static int static int
com_pager(String *buffer, char *line __attribute__((unused))) com_pager(String *buffer __attribute__((unused)),
char *line __attribute__((unused)))
{ {
char pager_name[FN_REFLEN], *end, *param; char pager_name[FN_REFLEN], *end, *param;
...@@ -3923,7 +3925,8 @@ com_rehash(String *buffer __attribute__((unused)), ...@@ -3923,7 +3925,8 @@ com_rehash(String *buffer __attribute__((unused)),
#ifdef USE_POPEN #ifdef USE_POPEN
static int static int
com_shell(String *buffer, char *line __attribute__((unused))) com_shell(String *buffer __attribute__((unused)),
char *line __attribute__((unused)))
{ {
char *shell_cmd; char *shell_cmd;
...@@ -4015,7 +4018,8 @@ com_connect(String *buffer, char *line) ...@@ -4015,7 +4018,8 @@ com_connect(String *buffer, char *line)
} }
static int com_source(String *buffer, char *line) static int com_source(String *buffer __attribute__((unused)),
char *line)
{ {
char source_name[FN_REFLEN], *end, *param; char source_name[FN_REFLEN], *end, *param;
LINE_BUFFER *line_buff; LINE_BUFFER *line_buff;
...@@ -4929,7 +4933,8 @@ static void init_username() ...@@ -4929,7 +4933,8 @@ static void init_username()
} }
} }
static int com_prompt(String *buffer, char *line) static int com_prompt(String *buffer __attribute__((unused)),
char *line)
{ {
char *ptr=strchr(line, ' '); char *ptr=strchr(line, ' ');
prompt_counter = 0; prompt_counter = 0;
......
...@@ -69,9 +69,13 @@ public: ...@@ -69,9 +69,13 @@ public:
} }
static void *operator new(size_t size, MEM_ROOT *mem_root) static void *operator new(size_t size, MEM_ROOT *mem_root)
{ return (void*) alloc_root(mem_root, (uint) size); } { return (void*) alloc_root(mem_root, (uint) size); }
static void operator delete(void *ptr_arg,size_t size) static void operator delete(void *ptr_arg, size_t size)
{ TRASH(ptr_arg, size); } {
static void operator delete(void *ptr_arg, MEM_ROOT *mem_root) (void) ptr_arg;
(void) size;
TRASH(ptr_arg, size);
}
static void operator delete(void *, MEM_ROOT *)
{ /* never called */ } { /* never called */ }
~String() { free(); } ~String() { free(); }
......
...@@ -136,7 +136,7 @@ ed_delete_prev_word(EditLine *el, int c __attribute__((__unused__))) ...@@ -136,7 +136,7 @@ ed_delete_prev_word(EditLine *el, int c __attribute__((__unused__)))
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
ed_delete_next_char(EditLine *el, int c) ed_delete_next_char(EditLine *el, int c __attribute__((__unused__)))
{ {
#ifdef notdef /* XXX */ #ifdef notdef /* XXX */
#define EL el->el_line #define EL el->el_line
...@@ -431,7 +431,8 @@ ed_argument_digit(EditLine *el, int c) ...@@ -431,7 +431,8 @@ ed_argument_digit(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
ed_unassigned(EditLine *el, int c __attribute__((__unused__))) ed_unassigned(EditLine *el __attribute__((__unused__)),
int c __attribute__((__unused__)))
{ {
return (CC_ERROR); return (CC_ERROR);
......
...@@ -202,7 +202,7 @@ _move_history(int op) ...@@ -202,7 +202,7 @@ _move_history(int op)
*/ */
static int static int
/*ARGSUSED*/ /*ARGSUSED*/
_getc_function(EditLine *el, char *c) _getc_function(EditLine *el __attribute__((__unused__)), char *c)
{ {
int i; int i;
...@@ -1613,7 +1613,8 @@ rl_insert(int count, int c) ...@@ -1613,7 +1613,8 @@ rl_insert(int count, int c)
/*ARGSUSED*/ /*ARGSUSED*/
int int
rl_newline(int count, int c) rl_newline(int count __attribute__((__unused__)),
int c __attribute__((__unused__)))
{ {
/* /*
* Readline-4.0 appears to ignore the args. * Readline-4.0 appears to ignore the args.
...@@ -1623,7 +1624,7 @@ rl_newline(int count, int c) ...@@ -1623,7 +1624,7 @@ rl_newline(int count, int c)
/*ARGSUSED*/ /*ARGSUSED*/
static unsigned char static unsigned char
rl_bind_wrapper(EditLine *el, unsigned char c) rl_bind_wrapper(EditLine *el __attribute__((__unused__)), unsigned char c)
{ {
if (map[c] == NULL) if (map[c] == NULL)
return CC_ERROR; return CC_ERROR;
...@@ -1718,7 +1719,7 @@ rl_get_previous_history(int count, int key) ...@@ -1718,7 +1719,7 @@ rl_get_previous_history(int count, int key)
void void
/*ARGSUSED*/ /*ARGSUSED*/
rl_prep_terminal(int meta_flag) rl_prep_terminal(int meta_flag __attribute__((__unused__)))
{ {
el_set(e, EL_PREP_TERM, 1); el_set(e, EL_PREP_TERM, 1);
} }
...@@ -1922,7 +1923,8 @@ _rl_qsort_string_compare(char **s1, char **s2) ...@@ -1922,7 +1923,8 @@ _rl_qsort_string_compare(char **s1, char **s2)
int int
/*ARGSUSED*/ /*ARGSUSED*/
rl_kill_text(int from, int to) rl_kill_text(int from __attribute__((__unused__)),
int to __attribute__((__unused__)))
{ {
return 0; return 0;
} }
...@@ -1941,20 +1943,25 @@ rl_get_keymap(void) ...@@ -1941,20 +1943,25 @@ rl_get_keymap(void)
void void
/*ARGSUSED*/ /*ARGSUSED*/
rl_set_keymap(Keymap k) rl_set_keymap(Keymap k __attribute__((__unused__)))
{ {
} }
int int
/*ARGSUSED*/ /*ARGSUSED*/
rl_generic_bind(int type, const char * keyseq, const char * data, Keymap k) rl_generic_bind(int type __attribute__((__unused__)),
const char * keyseq __attribute__((__unused__)),
const char * data __attribute__((__unused__)),
Keymap k __attribute__((__unused__)))
{ {
return 0; return 0;
} }
int int
/*ARGSUSED*/ /*ARGSUSED*/
rl_bind_key_in_map(int key, Function *fun, Keymap k) rl_bind_key_in_map(int key __attribute__((__unused__)),
Function *fun __attribute__((__unused__)),
Keymap k __attribute__((__unused__)))
{ {
return 0; return 0;
} }
...@@ -145,7 +145,7 @@ vi_paste_prev(EditLine *el, int c __attribute__((__unused__))) ...@@ -145,7 +145,7 @@ vi_paste_prev(EditLine *el, int c __attribute__((__unused__)))
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_prev_big_word(EditLine *el, int c) vi_prev_big_word(EditLine *el, int c __attribute__((__unused__)))
{ {
if (el->el_line.cursor == el->el_line.buffer) if (el->el_line.cursor == el->el_line.buffer)
...@@ -195,7 +195,7 @@ vi_prev_word(EditLine *el, int c __attribute__((__unused__))) ...@@ -195,7 +195,7 @@ vi_prev_word(EditLine *el, int c __attribute__((__unused__)))
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_next_big_word(EditLine *el, int c) vi_next_big_word(EditLine *el, int c __attribute__((__unused__)))
{ {
if (el->el_line.cursor >= el->el_line.lastchar - 1) if (el->el_line.cursor >= el->el_line.lastchar - 1)
...@@ -462,7 +462,7 @@ vi_delete_meta(EditLine *el, int c __attribute__((__unused__))) ...@@ -462,7 +462,7 @@ vi_delete_meta(EditLine *el, int c __attribute__((__unused__)))
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_end_big_word(EditLine *el, int c) vi_end_big_word(EditLine *el, int c __attribute__((__unused__)))
{ {
if (el->el_line.cursor == el->el_line.lastchar) if (el->el_line.cursor == el->el_line.lastchar)
...@@ -797,7 +797,7 @@ vi_repeat_prev_char(EditLine *el, int c __attribute__((__unused__))) ...@@ -797,7 +797,7 @@ vi_repeat_prev_char(EditLine *el, int c __attribute__((__unused__)))
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_match(EditLine *el, int c) vi_match(EditLine *el, int c __attribute__((__unused__)))
{ {
const char match_chars[] = "()[]{}"; const char match_chars[] = "()[]{}";
char *cp; char *cp;
...@@ -844,7 +844,7 @@ vi_match(EditLine *el, int c) ...@@ -844,7 +844,7 @@ vi_match(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_undo_line(EditLine *el, int c) vi_undo_line(EditLine *el, int c __attribute__((__unused__)))
{ {
cv_undo(el); cv_undo(el);
...@@ -858,7 +858,7 @@ vi_undo_line(EditLine *el, int c) ...@@ -858,7 +858,7 @@ vi_undo_line(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_to_column(EditLine *el, int c) vi_to_column(EditLine *el, int c __attribute__((__unused__)))
{ {
el->el_line.cursor = el->el_line.buffer; el->el_line.cursor = el->el_line.buffer;
...@@ -872,7 +872,7 @@ vi_to_column(EditLine *el, int c) ...@@ -872,7 +872,7 @@ vi_to_column(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_yank_end(EditLine *el, int c) vi_yank_end(EditLine *el, int c __attribute__((__unused__)))
{ {
cv_yank(el, el->el_line.cursor, cv_yank(el, el->el_line.cursor,
...@@ -886,7 +886,7 @@ vi_yank_end(EditLine *el, int c) ...@@ -886,7 +886,7 @@ vi_yank_end(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_yank(EditLine *el, int c) vi_yank(EditLine *el, int c __attribute__((__unused__)))
{ {
return cv_action(el, YANK); return cv_action(el, YANK);
...@@ -898,7 +898,7 @@ vi_yank(EditLine *el, int c) ...@@ -898,7 +898,7 @@ vi_yank(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_comment_out(EditLine *el, int c) vi_comment_out(EditLine *el, int c __attribute__((__unused__)))
{ {
el->el_line.cursor = el->el_line.buffer; el->el_line.cursor = el->el_line.buffer;
...@@ -919,7 +919,8 @@ extern char *get_alias_text(const char *) __weak_reference(get_alias_text); ...@@ -919,7 +919,8 @@ extern char *get_alias_text(const char *) __weak_reference(get_alias_text);
#endif #endif
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_alias(EditLine *el, int c) vi_alias(EditLine *el __attribute__((__unused__)),
int c __attribute__((__unused__)))
{ {
#if defined(__weak_reference) && !defined(__FreeBSD__) #if defined(__weak_reference) && !defined(__FreeBSD__)
char alias_name[3]; char alias_name[3];
...@@ -949,7 +950,7 @@ vi_alias(EditLine *el, int c) ...@@ -949,7 +950,7 @@ vi_alias(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_to_history_line(EditLine *el, int c) vi_to_history_line(EditLine *el, int c __attribute__((__unused__)))
{ {
int sv_event_no = el->el_history.eventno; int sv_event_no = el->el_history.eventno;
el_action_t rval; el_action_t rval;
...@@ -994,7 +995,7 @@ vi_to_history_line(EditLine *el, int c) ...@@ -994,7 +995,7 @@ vi_to_history_line(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_histedit(EditLine *el, int c) vi_histedit(EditLine *el, int c __attribute__((__unused__)))
{ {
int fd; int fd;
pid_t pid; pid_t pid;
...@@ -1050,7 +1051,7 @@ vi_histedit(EditLine *el, int c) ...@@ -1050,7 +1051,7 @@ vi_histedit(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_history_word(EditLine *el, int c) vi_history_word(EditLine *el, int c __attribute__((__unused__)))
{ {
const char *wp = HIST_FIRST(el); const char *wp = HIST_FIRST(el);
const char *wep, *wsp; const char *wep, *wsp;
...@@ -1099,7 +1100,7 @@ vi_history_word(EditLine *el, int c) ...@@ -1099,7 +1100,7 @@ vi_history_word(EditLine *el, int c)
*/ */
protected el_action_t protected el_action_t
/*ARGSUSED*/ /*ARGSUSED*/
vi_redo(EditLine *el, int c) vi_redo(EditLine *el, int c __attribute__((__unused__)))
{ {
c_redo_t *r = &el->el_chared.c_redo; c_redo_t *r = &el->el_chared.c_redo;
......
...@@ -299,7 +299,8 @@ CHECK_FUNCTION_EXISTS (dlopen HAVE_DLOPEN) ...@@ -299,7 +299,8 @@ CHECK_FUNCTION_EXISTS (dlopen HAVE_DLOPEN)
CHECK_FUNCTION_EXISTS (fchmod HAVE_FCHMOD) CHECK_FUNCTION_EXISTS (fchmod HAVE_FCHMOD)
CHECK_FUNCTION_EXISTS (fcntl HAVE_FCNTL) CHECK_FUNCTION_EXISTS (fcntl HAVE_FCNTL)
CHECK_FUNCTION_EXISTS (fconvert HAVE_FCONVERT) CHECK_FUNCTION_EXISTS (fconvert HAVE_FCONVERT)
CHECK_SYMBOL_EXISTS(fdatasync "unistd.h" HAVE_FDATASYNC) CHECK_FUNCTION_EXISTS (fdatasync HAVE_FDATASYNC)
CHECK_SYMBOL_EXISTS(fdatasync "unistd.h" HAVE_DECL_FDATASYNC)
CHECK_FUNCTION_EXISTS (fesetround HAVE_FESETROUND) CHECK_FUNCTION_EXISTS (fesetround HAVE_FESETROUND)
CHECK_FUNCTION_EXISTS (fpsetmask HAVE_FPSETMASK) CHECK_FUNCTION_EXISTS (fpsetmask HAVE_FPSETMASK)
CHECK_FUNCTION_EXISTS (fseeko HAVE_FSEEKO) CHECK_FUNCTION_EXISTS (fseeko HAVE_FSEEKO)
......
...@@ -2120,6 +2120,13 @@ MYSQL_TYPE_QSORT ...@@ -2120,6 +2120,13 @@ MYSQL_TYPE_QSORT
AC_FUNC_UTIME_NULL AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF AC_FUNC_VPRINTF
AC_CHECK_DECLS([fdatasync],,,
[
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
])
AC_CHECK_FUNCS(alarm bfill bmove bsearch bzero \ AC_CHECK_FUNCS(alarm bfill bmove bsearch bzero \
chsize cuserid fchmod fcntl \ chsize cuserid fchmod fcntl \
fdatasync fesetround finite fpresetsticky fpsetmask fsync ftruncate \ fdatasync fesetround finite fpresetsticky fpsetmask fsync ftruncate \
......
...@@ -58,7 +58,7 @@ int my_sync(File fd, myf my_flags) ...@@ -58,7 +58,7 @@ int my_sync(File fd, myf my_flags)
/* Some file systems don't support F_FULLFSYNC and fail above: */ /* Some file systems don't support F_FULLFSYNC and fail above: */
DBUG_PRINT("info",("fcntl(F_FULLFSYNC) failed, falling back")); DBUG_PRINT("info",("fcntl(F_FULLFSYNC) failed, falling back"));
#endif #endif
#if defined(HAVE_FDATASYNC) #if defined(HAVE_FDATASYNC) && HAVE_DECL_FDATASYNC
res= fdatasync(fd); res= fdatasync(fd);
#elif defined(HAVE_FSYNC) #elif defined(HAVE_FSYNC)
res= fsync(fd); res= fsync(fd);
......
...@@ -17,8 +17,8 @@ regoff_t startoff = 0; ...@@ -17,8 +17,8 @@ regoff_t startoff = 0;
regoff_t endoff = 0; regoff_t endoff = 0;
extern int split(); extern int split(char *string, char *fields[], int nfields, char *sep);
extern void regprint(); extern void regprint(my_regex_t *r, FILE *d);
/* /*
- main - do the simple case, hand off to regress() for regression - main - do the simple case, hand off to regress() for regression
...@@ -145,7 +145,7 @@ FILE *in; ...@@ -145,7 +145,7 @@ FILE *in;
inbuf[strlen(inbuf)-1] = '\0'; /* get rid of stupid \n */ inbuf[strlen(inbuf)-1] = '\0'; /* get rid of stupid \n */
if (debug) if (debug)
fprintf(stdout, "%d:\n", line); fprintf(stdout, "%d:\n", line);
nf = split(inbuf, f, MAXF, "\t\t"); nf = split(inbuf, f, MAXF, (char*) "\t\t");
if (nf < 3) { if (nf < 3) {
fprintf(stderr, "bad input, line %d\n", line); fprintf(stderr, "bad input, line %d\n", line);
exit(1); exit(1);
...@@ -288,7 +288,7 @@ int opts; /* may not match f1 */ ...@@ -288,7 +288,7 @@ int opts; /* may not match f1 */
for (i = 1; i < NSHOULD; i++) for (i = 1; i < NSHOULD; i++)
should[i] = NULL; should[i] = NULL;
nshould = split(f4, should+1, NSHOULD-1, ","); nshould = split(f4, should+1, NSHOULD-1, (char*) ",");
if (nshould == 0) { if (nshould == 0) {
nshould = 1; nshould = 1;
should[1] = (char*) ""; should[1] = (char*) "";
......
...@@ -6435,8 +6435,8 @@ void ha_ndbcluster::get_auto_increment(ulonglong offset, ulonglong increment, ...@@ -6435,8 +6435,8 @@ void ha_ndbcluster::get_auto_increment(ulonglong offset, ulonglong increment,
for (;;) for (;;)
{ {
Ndb_tuple_id_range_guard g(m_share); Ndb_tuple_id_range_guard g(m_share);
if (m_skip_auto_increment && if ((m_skip_auto_increment &&
ndb->readAutoIncrementValue(m_table, g.range, auto_value) || ndb->readAutoIncrementValue(m_table, g.range, auto_value)) ||
ndb->getAutoIncrementValue(m_table, g.range, auto_value, cache_size, increment, offset)) ndb->getAutoIncrementValue(m_table, g.range, auto_value, cache_size, increment, offset))
{ {
if (--retries && if (--retries &&
...@@ -10271,8 +10271,8 @@ bool ha_ndbcluster::check_if_incompatible_data(HA_CREATE_INFO *create_info, ...@@ -10271,8 +10271,8 @@ bool ha_ndbcluster::check_if_incompatible_data(HA_CREATE_INFO *create_info,
{ {
Field *field= table->field[i]; Field *field= table->field[i];
const NDBCOL *col= tab->getColumn(i); const NDBCOL *col= tab->getColumn(i);
if (col->getStorageType() == NDB_STORAGETYPE_MEMORY && create_info->storage_media != HA_SM_MEMORY || if ((col->getStorageType() == NDB_STORAGETYPE_MEMORY && create_info->storage_media != HA_SM_MEMORY) ||
col->getStorageType() == NDB_STORAGETYPE_DISK && create_info->storage_media != HA_SM_DISK) (col->getStorageType() == NDB_STORAGETYPE_DISK && create_info->storage_media != HA_SM_DISK))
{ {
DBUG_PRINT("info", ("Column storage media is changed")); DBUG_PRINT("info", ("Column storage media is changed"));
DBUG_RETURN(COMPATIBLE_DATA_NO); DBUG_RETURN(COMPATIBLE_DATA_NO);
......
...@@ -361,7 +361,7 @@ void key_unpack(String *to,TABLE *table,uint idx) ...@@ -361,7 +361,7 @@ void key_unpack(String *to,TABLE *table,uint idx)
if (field->binary() && field->type() == MYSQL_TYPE_STRING && tmp.length()) if (field->binary() && field->type() == MYSQL_TYPE_STRING && tmp.length())
{ {
const char *tmp_end= tmp.ptr() + tmp.length(); const char *tmp_end= tmp.ptr() + tmp.length();
while (tmp_end > tmp.ptr() && !*--tmp_end); while (tmp_end > tmp.ptr() && !*--tmp_end) ;
tmp.length(tmp_end - tmp.ptr() + 1); tmp.length(tmp_end - tmp.ptr() + 1);
} }
if (cs->mbmaxlen > 1 && if (cs->mbmaxlen > 1 &&
......
...@@ -8509,7 +8509,7 @@ void Table_map_log_event::pack_info(Protocol *protocol) ...@@ -8509,7 +8509,7 @@ void Table_map_log_event::pack_info(Protocol *protocol)
#ifdef MYSQL_CLIENT #ifdef MYSQL_CLIENT
void Table_map_log_event::print(FILE *file, PRINT_EVENT_INFO *print_event_info) void Table_map_log_event::print(FILE *, PRINT_EVENT_INFO *print_event_info)
{ {
if (!print_event_info->short_form) if (!print_event_info->short_form)
{ {
......
...@@ -1032,7 +1032,7 @@ public: ...@@ -1032,7 +1032,7 @@ public:
return (void*) my_malloc((uint)size, MYF(MY_WME|MY_FAE)); return (void*) my_malloc((uint)size, MYF(MY_WME|MY_FAE));
} }
static void operator delete(void *ptr, size_t size) static void operator delete(void *ptr, size_t)
{ {
my_free(ptr); my_free(ptr);
} }
......
...@@ -328,7 +328,7 @@ int my_decimal2int(uint mask, const my_decimal *d, my_bool unsigned_flag, ...@@ -328,7 +328,7 @@ int my_decimal2int(uint mask, const my_decimal *d, my_bool unsigned_flag,
inline inline
int my_decimal2double(uint mask, const my_decimal *d, double *result) int my_decimal2double(uint, const my_decimal *d, double *result)
{ {
/* No need to call check_result as this will always succeed */ /* No need to call check_result as this will always succeed */
return decimal2double((decimal_t*) d, result); return decimal2double((decimal_t*) d, result);
......
...@@ -91,9 +91,13 @@ public: ...@@ -91,9 +91,13 @@ public:
} }
static void *operator new(size_t size, MEM_ROOT *mem_root) throw () static void *operator new(size_t size, MEM_ROOT *mem_root) throw ()
{ return (void*) alloc_root(mem_root, (uint) size); } { return (void*) alloc_root(mem_root, (uint) size); }
static void operator delete(void *ptr_arg,size_t size) static void operator delete(void *ptr_arg, size_t size)
{ TRASH(ptr_arg, size); } {
static void operator delete(void *ptr_arg, MEM_ROOT *mem_root) (void) ptr_arg;
(void) size;
TRASH(ptr_arg, size);
}
static void operator delete(void *, MEM_ROOT *)
{ /* never called */ } { /* never called */ }
~String() { free(); } ~String() { free(); }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment