Merge of mysql-5.1-bugteam into mysql-trunk-merge.
This commit is contained in:
commit
74283a052e
@ -90,22 +90,19 @@ SSL_LIBRARY=--with-ssl
|
||||
|
||||
if [ "x$warning_mode" != "xpedantic" ]; then
|
||||
# Both C and C++ warnings
|
||||
warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W"
|
||||
warnings="$warnings -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare"
|
||||
warnings="$warnings -Wwrite-strings -Wunused-function -Wunused-label -Wunused-value -Wunused-variable"
|
||||
warnings="-Wall -Wextra -Wunused -Wwrite-strings"
|
||||
|
||||
# For more warnings, uncomment the following line
|
||||
# warnings="$global_warnings -Wshadow"
|
||||
# warnings="$warnings -Wshadow"
|
||||
|
||||
# C warnings
|
||||
c_warnings="$warnings -Wunused-parameter"
|
||||
c_warnings="$warnings"
|
||||
# C++ warnings
|
||||
cxx_warnings="$warnings"
|
||||
cxx_warnings="$warnings -Wno-unused-parameter"
|
||||
# cxx_warnings="$cxx_warnings -Woverloaded-virtual -Wsign-promo"
|
||||
cxx_warnings="$cxx_warnings -Wreorder"
|
||||
cxx_warnings="$cxx_warnings -Wctor-dtor-privacy -Wnon-virtual-dtor"
|
||||
# Added unless --with-debug=full
|
||||
debug_extra_cflags="-O0 -g3 -gdwarf-2" #1 -Wuninitialized"
|
||||
debug_extra_cflags="-O0 -g3 -gdwarf-2"
|
||||
else
|
||||
warnings="-W -Wall -ansi -pedantic -Wno-long-long -Wno-unused -D_POSIX_SOURCE"
|
||||
c_warnings="$warnings"
|
||||
|
117
BUILD/check-cpu
117
BUILD/check-cpu
@ -187,69 +187,76 @@ check_cpu () {
|
||||
cc=$CC
|
||||
fi
|
||||
|
||||
if test "x$compiler" = "x" ; then
|
||||
cc_ver=`$cc --version | sed 1q`
|
||||
cc_verno=`echo $cc_ver | sed -e 's/^.*(GCC)//g; s/[^0-9. ]//g; s/^ *//g; s/ .*//g'`
|
||||
if test "x$core2" = "xyes" ; then
|
||||
cpu_arg="core2"
|
||||
fi
|
||||
|
||||
if test "x$compiler" != "x" ; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# check if compiler is gcc and dump its version
|
||||
cc_verno=`$cc -dumpversion 2>/dev/null`
|
||||
if test "x$?" = "x0" ; then
|
||||
set -- `echo $cc_verno | tr '.' ' '`
|
||||
cc_ver="GCC"
|
||||
cc_major=$1
|
||||
cc_minor=$2
|
||||
cc_patch=$3
|
||||
cc_comp=`expr $cc_major '*' 100 '+' $cc_minor`
|
||||
|
||||
case "$cc_ver--$cc_verno" in
|
||||
*GCC*)
|
||||
# different gcc backends (and versions) have different CPU flags
|
||||
case `gcc -dumpmachine` in
|
||||
i?86-* | x86_64-*)
|
||||
if test "$cc_comp" -lt 304 ; then
|
||||
check_cpu_cflags="-mcpu=${cpu_arg}"
|
||||
elif test "$cc_comp" -ge 402 ; then
|
||||
check_cpu_cflags="-mtune=native"
|
||||
else
|
||||
check_cpu_cflags="-mtune=${cpu_arg}"
|
||||
fi
|
||||
;;
|
||||
ppc-*)
|
||||
check_cpu_cflags="-mcpu=${cpu_arg} -mtune=${cpu_arg}"
|
||||
;;
|
||||
*)
|
||||
check_cpu_cflags=""
|
||||
return
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
2.95.*)
|
||||
# GCC 2.95 doesn't expose its name in --version output
|
||||
check_cpu_cflags="-m${cpu_arg}"
|
||||
;;
|
||||
*)
|
||||
check_cpu_cflags=""
|
||||
return
|
||||
;;
|
||||
esac
|
||||
# now we check whether the compiler really understands the cpu type
|
||||
touch __test.c
|
||||
fi
|
||||
|
||||
while [ "$cpu_arg" ] ; do
|
||||
printf "testing $cpu_arg ... " >&2
|
||||
|
||||
# compile check
|
||||
eval "$cc -c $check_cpu_cflags __test.c" 2>/dev/null
|
||||
if test "x$?" = "x0" ; then
|
||||
echo ok >&2
|
||||
break;
|
||||
fi
|
||||
|
||||
echo failed >&2
|
||||
case "$cc_ver--$cc_verno" in
|
||||
*GCC*)
|
||||
# different gcc backends (and versions) have different CPU flags
|
||||
case `gcc -dumpmachine` in
|
||||
i?86-* | x86_64-*)
|
||||
if test "$cc_comp" -lt 304 ; then
|
||||
check_cpu_cflags="-mcpu=${cpu_arg}"
|
||||
elif test "$cc_comp" -ge 402 ; then
|
||||
check_cpu_cflags="-mtune=native"
|
||||
else
|
||||
check_cpu_cflags="-mtune=${cpu_arg}"
|
||||
fi
|
||||
;;
|
||||
ppc-*)
|
||||
check_cpu_cflags="-mcpu=${cpu_arg} -mtune=${cpu_arg}"
|
||||
;;
|
||||
*)
|
||||
check_cpu_cflags=""
|
||||
return
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
2.95.*)
|
||||
# GCC 2.95 doesn't expose its name in --version output
|
||||
check_cpu_cflags="-m${cpu_arg}"
|
||||
;;
|
||||
*)
|
||||
check_cpu_cflags=""
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
# now we check whether the compiler really understands the cpu type
|
||||
touch __test.c
|
||||
|
||||
while [ "$cpu_arg" ] ; do
|
||||
printf "testing $cpu_arg ... " >&2
|
||||
|
||||
# compile check
|
||||
eval "$cc -c $check_cpu_cflags __test.c" 2>/dev/null
|
||||
if test "x$?" = "x0" ; then
|
||||
echo ok >&2
|
||||
break;
|
||||
done
|
||||
rm __test.*
|
||||
fi
|
||||
if test "x$core2" = "xyes" ; then
|
||||
cpu_arg="core2"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo failed >&2
|
||||
check_cpu_cflags=""
|
||||
break;
|
||||
done
|
||||
rm __test.*
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
check_cpu
|
||||
|
@ -88,7 +88,6 @@ extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef bcmp // Fix problem with new readline
|
||||
#if defined(__WIN__)
|
||||
#include <conio.h>
|
||||
#elif !defined(__NETWARE__)
|
||||
|
@ -5827,7 +5827,7 @@ int read_command(struct st_command** command_ptr)
|
||||
(struct st_command*) my_malloc(sizeof(*command),
|
||||
MYF(MY_WME|MY_ZEROFILL))) ||
|
||||
insert_dynamic(&q_lines, (uchar*) &command))
|
||||
die(NullS);
|
||||
die("Out of memory");
|
||||
command->type= Q_UNKNOWN;
|
||||
|
||||
read_command_buf[0]= 0;
|
||||
@ -6326,7 +6326,7 @@ void init_win_path_patterns()
|
||||
}
|
||||
|
||||
if (insert_dynamic(&patterns, (uchar*) &p))
|
||||
die(NullS);
|
||||
die("Out of memory");
|
||||
|
||||
DBUG_PRINT("info", ("p: %s", p));
|
||||
while (*p)
|
||||
@ -9421,8 +9421,7 @@ REPLACE *init_replace(char * *from, char * *to,uint count,
|
||||
for (i=1 ; i <= found_sets ; i++)
|
||||
{
|
||||
pos=from[found_set[i-1].table_offset];
|
||||
rep_str[i].found= !bcmp((const uchar*) pos,
|
||||
(const uchar*) "\\^", 3) ? 2 : 1;
|
||||
rep_str[i].found= !memcmp(pos, "\\^", 3) ? 2 : 1;
|
||||
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
||||
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
||||
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
||||
@ -9550,8 +9549,8 @@ void copy_bits(REP_SET *to,REP_SET *from)
|
||||
|
||||
int cmp_bits(REP_SET *set1,REP_SET *set2)
|
||||
{
|
||||
return bcmp((uchar*) set1->bits,(uchar*) set2->bits,
|
||||
sizeof(uint) * set1->size_of_bits);
|
||||
return memcmp(set1->bits, set2->bits,
|
||||
sizeof(uint) * set1->size_of_bits);
|
||||
}
|
||||
|
||||
|
||||
@ -9620,17 +9619,15 @@ int find_found(FOUND_SET *found_set,uint table_offset, int found_offset)
|
||||
|
||||
uint start_at_word(char * pos)
|
||||
{
|
||||
return (((!bcmp((const uchar*) pos, (const uchar*) "\\b",2) && pos[2]) ||
|
||||
!bcmp((const uchar*) pos, (const uchar*) "\\^", 2)) ? 1 : 0);
|
||||
return (((!memcmp(pos, "\\b",2) && pos[2]) ||
|
||||
!memcmp(pos, "\\^", 2)) ? 1 : 0);
|
||||
}
|
||||
|
||||
uint end_of_word(char * pos)
|
||||
{
|
||||
char * end=strend(pos);
|
||||
return ((end > pos+2 && !bcmp((const uchar*) end-2,
|
||||
(const uchar*) "\\b", 2)) ||
|
||||
(end >= pos+2 && !bcmp((const uchar*) end-2,
|
||||
(const uchar*) "\\$",2))) ? 1 : 0;
|
||||
return ((end > pos+2 && !memcmp(end-2, "\\b", 2)) ||
|
||||
(end >= pos+2 && !memcmp(end-2, "\\$",2))) ? 1 : 0;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -30,7 +30,6 @@ SET(HAVE_ASM_MSR_H CACHE INTERNAL "")
|
||||
SET(HAVE_BACKTRACE CACHE INTERNAL "")
|
||||
SET(HAVE_BACKTRACE_SYMBOLS CACHE INTERNAL "")
|
||||
SET(HAVE_BACKTRACE_SYMBOLS_FD CACHE INTERNAL "")
|
||||
SET(HAVE_BCMP CACHE INTERNAL "")
|
||||
SET(HAVE_BFILL CACHE INTERNAL "")
|
||||
SET(HAVE_BMOVE CACHE INTERNAL "")
|
||||
SET(HAVE_BSD_SIGNALS CACHE INTERNAL "")
|
||||
|
@ -31,4 +31,4 @@ noinst_HEADERS = readline.h chardefs.h keymaps.h \
|
||||
|
||||
EXTRA_DIST= emacs_keymap.c vi_keymap.c CMakeLists.txt
|
||||
|
||||
DEFS = -DMYSQL_CLIENT_NO_THREADS -DHAVE_CONFIG_H -DNO_KILL_INTR
|
||||
DEFS = -DMYSQL_CLIENT_NO_THREADS -DHAVE_CONFIG_H -DNO_KILL_INTR -D_GNU_SOURCE=1
|
||||
|
@ -125,7 +125,6 @@
|
||||
#cmakedefine HAVE_AIOWAIT 1
|
||||
#cmakedefine HAVE_ALARM 1
|
||||
#cmakedefine HAVE_ALLOCA 1
|
||||
#cmakedefine HAVE_BCMP 1
|
||||
#cmakedefine HAVE_BFILL 1
|
||||
#cmakedefine HAVE_BMOVE 1
|
||||
#cmakedefine HAVE_BZERO 1
|
||||
|
@ -273,7 +273,6 @@ CHECK_FUNCTION_EXISTS (backtrace HAVE_BACKTRACE)
|
||||
CHECK_FUNCTION_EXISTS (backtrace_symbols HAVE_BACKTRACE_SYMBOLS)
|
||||
CHECK_FUNCTION_EXISTS (backtrace_symbols_fd HAVE_BACKTRACE_SYMBOLS_FD)
|
||||
CHECK_FUNCTION_EXISTS (printstack HAVE_PRINTSTACK)
|
||||
CHECK_FUNCTION_EXISTS (bcmp HAVE_BCMP)
|
||||
CHECK_FUNCTION_EXISTS (bfill HAVE_BFILL)
|
||||
CHECK_FUNCTION_EXISTS (bmove HAVE_BMOVE)
|
||||
CHECK_FUNCTION_EXISTS (bsearch HAVE_BSEARCH)
|
||||
|
@ -2342,7 +2342,7 @@ MYSQL_TYPE_QSORT
|
||||
AC_FUNC_UTIME_NULL
|
||||
AC_FUNC_VPRINTF
|
||||
|
||||
AC_CHECK_FUNCS(alarm bcmp bfill bmove bsearch bzero \
|
||||
AC_CHECK_FUNCS(alarm bfill bmove bsearch bzero \
|
||||
chsize cuserid fchmod fcntl \
|
||||
fdatasync fesetround finite fpresetsticky fpsetmask fsync ftruncate \
|
||||
getcwd gethostbyaddr_r gethostbyname_r getpass getpassphrase getpwnam \
|
||||
|
@ -665,9 +665,9 @@ static struct message *find_message(struct errors *err, const char *lang,
|
||||
static ha_checksum checksum_format_specifier(const char* msg)
|
||||
{
|
||||
ha_checksum chksum= 0;
|
||||
const char* p= msg;
|
||||
const char* start= 0;
|
||||
int num_format_specifiers= 0;
|
||||
const uchar* p= (const uchar*) msg;
|
||||
const uchar* start= NULL;
|
||||
uint32 num_format_specifiers= 0;
|
||||
while (*p)
|
||||
{
|
||||
|
||||
|
@ -648,7 +648,7 @@ static REPLACE *init_replace(char * *from, char * *to,uint count,
|
||||
for (i=1 ; i <= found_sets ; i++)
|
||||
{
|
||||
pos=from[found_set[i-1].table_offset];
|
||||
rep_str[i].found= (my_bool) (!bcmp(pos,"\\^",3) ? 2 : 1);
|
||||
rep_str[i].found= (my_bool) (!memcmp(pos,"\\^",3) ? 2 : 1);
|
||||
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
||||
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
||||
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
||||
@ -776,8 +776,8 @@ static void copy_bits(REP_SET *to,REP_SET *from)
|
||||
|
||||
static int cmp_bits(REP_SET *set1,REP_SET *set2)
|
||||
{
|
||||
return bcmp((uchar*) set1->bits,(uchar*) set2->bits,
|
||||
sizeof(uint) * set1->size_of_bits);
|
||||
return memcmp(set1->bits, set2->bits,
|
||||
sizeof(uint) * set1->size_of_bits);
|
||||
}
|
||||
|
||||
|
||||
@ -849,14 +849,14 @@ static short find_found(FOUND_SET *found_set,uint table_offset,
|
||||
|
||||
static uint start_at_word(char * pos)
|
||||
{
|
||||
return (((!bcmp(pos,"\\b",2) && pos[2]) || !bcmp(pos,"\\^",2)) ? 1 : 0);
|
||||
return (((!memcmp(pos,"\\b",2) && pos[2]) || !memcmp(pos,"\\^",2)) ? 1 : 0);
|
||||
}
|
||||
|
||||
static uint end_of_word(char * pos)
|
||||
{
|
||||
char * end=strend(pos);
|
||||
return ((end > pos+2 && !bcmp(end-2,"\\b",2)) ||
|
||||
(end >= pos+2 && !bcmp(end-2,"\\$",2))) ?
|
||||
return ((end > pos+2 && !memcmp(end-2,"\\b",2)) ||
|
||||
(end >= pos+2 && !memcmp(end-2,"\\$",2))) ?
|
||||
1 : 0;
|
||||
}
|
||||
|
||||
|
@ -953,8 +953,9 @@ x509* PemToDer(FILE* file, CertType type, EncryptedInfo* info)
|
||||
info->set = true;
|
||||
}
|
||||
}
|
||||
fgets(line,sizeof(line), file); // get blank line
|
||||
begin = ftell(file);
|
||||
// get blank line
|
||||
if (fgets(line, sizeof(line), file))
|
||||
begin = ftell(file);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ public:
|
||||
enum { BLOCK_SIZE = BLOWFISH_BLOCK_SIZE, ROUNDS = 16 };
|
||||
|
||||
Blowfish(CipherDir DIR, Mode MODE)
|
||||
: Mode_BASE(BLOCK_SIZE, DIR, MODE) {}
|
||||
: Mode_BASE(BLOCK_SIZE, DIR, MODE), sbox_(pbox_ + ROUNDS + 2) {}
|
||||
|
||||
#ifdef DO_BLOWFISH_ASM
|
||||
void Process(byte*, const byte*, word32);
|
||||
@ -62,8 +62,8 @@ private:
|
||||
static const word32 p_init_[ROUNDS + 2];
|
||||
static const word32 s_init_[4 * 256];
|
||||
|
||||
word32 pbox_[ROUNDS + 2];
|
||||
word32 sbox_[4 * 256];
|
||||
word32 pbox_[ROUNDS + 2 + 4 * 256];
|
||||
word32* sbox_;
|
||||
|
||||
void crypt_block(const word32 in[2], word32 out[2]) const;
|
||||
void AsmProcess(const byte* in, byte* out) const;
|
||||
|
@ -35,10 +35,7 @@
|
||||
|
||||
// Handler for pure virtual functions
|
||||
namespace __Crun {
|
||||
static void pure_error(void)
|
||||
{
|
||||
assert("Pure virtual method called." == "Aborted");
|
||||
}
|
||||
void pure_error(void);
|
||||
} // namespace __Crun
|
||||
|
||||
#endif // __sun
|
||||
@ -54,16 +51,7 @@ extern "C" {
|
||||
#else
|
||||
#include "kernelc.hpp"
|
||||
#endif
|
||||
|
||||
/* Disallow inline __cxa_pure_virtual() */
|
||||
static int __cxa_pure_virtual() __attribute__((noinline, used));
|
||||
static int __cxa_pure_virtual()
|
||||
{
|
||||
// oops, pure virtual called!
|
||||
assert(!"Pure virtual method called. Aborted");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __cxa_pure_virtual () __attribute__ ((weak));
|
||||
} // extern "C"
|
||||
|
||||
#endif // __GNUC__ > 2
|
||||
|
@ -51,7 +51,7 @@ void AES::Process(byte* out, const byte* in, word32 sz)
|
||||
out += BLOCK_SIZE;
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
else if (mode_ == CBC)
|
||||
else if (mode_ == CBC) {
|
||||
if (dir_ == ENCRYPTION)
|
||||
while (blocks--) {
|
||||
r_[0] ^= *(word32*)in;
|
||||
@ -78,6 +78,7 @@ void AES::Process(byte* out, const byte* in, word32 sz)
|
||||
out += BLOCK_SIZE;
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DO_AES_ASM
|
||||
|
@ -186,10 +186,10 @@ Integer AbstractGroup::CascadeScalarMultiply(const Element &x,
|
||||
|
||||
struct WindowSlider
|
||||
{
|
||||
WindowSlider(const Integer &exp, bool fastNegate,
|
||||
WindowSlider(const Integer &expIn, bool fastNegateIn,
|
||||
unsigned int windowSizeIn=0)
|
||||
: exp(exp), windowModulus(Integer::One()), windowSize(windowSizeIn),
|
||||
windowBegin(0), fastNegate(fastNegate), firstTime(true),
|
||||
: exp(expIn), windowModulus(Integer::One()), windowSize(windowSizeIn),
|
||||
windowBegin(0), fastNegate(fastNegateIn), firstTime(true),
|
||||
finished(false)
|
||||
{
|
||||
if (windowSize == 0)
|
||||
|
@ -53,7 +53,7 @@ void Blowfish::Process(byte* out, const byte* in, word32 sz)
|
||||
out += BLOCK_SIZE;
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
else if (mode_ == CBC)
|
||||
else if (mode_ == CBC) {
|
||||
if (dir_ == ENCRYPTION)
|
||||
while (blocks--) {
|
||||
r_[0] ^= *(word32*)in;
|
||||
@ -78,6 +78,7 @@ void Blowfish::Process(byte* out, const byte* in, word32 sz)
|
||||
out += BLOCK_SIZE;
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DO_BLOWFISH_ASM
|
||||
|
@ -283,21 +283,23 @@ DWord() {}
|
||||
word GetHighHalfAsBorrow() const {return 0-halfs_.high;}
|
||||
|
||||
private:
|
||||
struct dword_struct
|
||||
{
|
||||
#ifdef LITTLE_ENDIAN_ORDER
|
||||
word low;
|
||||
word high;
|
||||
#else
|
||||
word high;
|
||||
word low;
|
||||
#endif
|
||||
};
|
||||
|
||||
union
|
||||
{
|
||||
#ifdef TAOCRYPT_NATIVE_DWORD_AVAILABLE
|
||||
dword whole_;
|
||||
#endif
|
||||
struct
|
||||
{
|
||||
#ifdef LITTLE_ENDIAN_ORDER
|
||||
word low;
|
||||
word high;
|
||||
#else
|
||||
word high;
|
||||
word low;
|
||||
#endif
|
||||
} halfs_;
|
||||
struct dword_struct halfs_;
|
||||
};
|
||||
};
|
||||
|
||||
@ -1214,20 +1216,24 @@ public:
|
||||
#define AS1(x) #x ";"
|
||||
#define AS2(x, y) #x ", " #y ";"
|
||||
#define AddPrologue \
|
||||
word res; \
|
||||
__asm__ __volatile__ \
|
||||
( \
|
||||
"push %%ebx;" /* save this manually, in case of -fPIC */ \
|
||||
"mov %2, %%ebx;" \
|
||||
"mov %3, %%ebx;" \
|
||||
".intel_syntax noprefix;" \
|
||||
"push ebp;"
|
||||
#define AddEpilogue \
|
||||
"pop ebp;" \
|
||||
".att_syntax prefix;" \
|
||||
"pop %%ebx;" \
|
||||
: \
|
||||
"mov %%eax, %0;" \
|
||||
: "=g" (res) \
|
||||
: "c" (C), "d" (A), "m" (B), "S" (N) \
|
||||
: "%edi", "memory", "cc" \
|
||||
);
|
||||
); \
|
||||
return res;
|
||||
|
||||
#define MulPrologue \
|
||||
__asm__ __volatile__ \
|
||||
( \
|
||||
|
@ -84,12 +84,23 @@ namespace STL = STL_NAMESPACE;
|
||||
|
||||
}
|
||||
|
||||
#if defined(__ICC) || defined(__INTEL_COMPILER)
|
||||
#ifdef __sun
|
||||
|
||||
// Handler for pure virtual functions
|
||||
namespace __Crun {
|
||||
void pure_error() {
|
||||
assert(!"Aborted: pure virtual method called.");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__ICC) || defined(__INTEL_COMPILER) || (__GNUC__ > 2)
|
||||
|
||||
extern "C" {
|
||||
|
||||
int __cxa_pure_virtual() {
|
||||
assert("Pure virtual method called." == "Aborted");
|
||||
assert(!"Aborted: pure virtual method called.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -166,14 +177,6 @@ word Crop(word value, unsigned int size)
|
||||
|
||||
#ifdef TAOCRYPT_X86ASM_AVAILABLE
|
||||
|
||||
#ifndef _MSC_VER
|
||||
static jmp_buf s_env;
|
||||
static void SigIllHandler(int)
|
||||
{
|
||||
longjmp(s_env, 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
bool HaveCpuId()
|
||||
{
|
||||
|
@ -54,7 +54,7 @@ void Twofish::Process(byte* out, const byte* in, word32 sz)
|
||||
out += BLOCK_SIZE;
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
else if (mode_ == CBC)
|
||||
else if (mode_ == CBC) {
|
||||
if (dir_ == ENCRYPTION)
|
||||
while (blocks--) {
|
||||
r_[0] ^= *(word32*)in;
|
||||
@ -82,6 +82,7 @@ void Twofish::Process(byte* out, const byte* in, word32 sz)
|
||||
out += BLOCK_SIZE;
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DO_TWOFISH_ASM
|
||||
|
@ -160,6 +160,11 @@ inline void err_sys(const char* msg)
|
||||
}
|
||||
|
||||
|
||||
extern "C" {
|
||||
static int PasswordCallBack(char*, int, int, void*);
|
||||
}
|
||||
|
||||
|
||||
static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata)
|
||||
{
|
||||
strncpy(passwd, "12345678", sz);
|
||||
|
@ -36,10 +36,6 @@
|
||||
/* need by my_vsnprintf */
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef _AIX
|
||||
#undef HAVE_BCMP
|
||||
#endif
|
||||
|
||||
/* This is needed for the definitions of bzero... on solaris */
|
||||
#if defined(HAVE_STRINGS_H)
|
||||
#include <strings.h>
|
||||
@ -63,14 +59,6 @@
|
||||
/* Unixware 7 */
|
||||
#if !defined(HAVE_BFILL)
|
||||
# define bfill(A,B,C) memset((A),(C),(B))
|
||||
# define bmove_align(A,B,C) memcpy((A),(B),(C))
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_BCMP)
|
||||
# define bcopy(s, d, n) memcpy((d), (s), (n))
|
||||
# define bcmp(A,B,C) memcmp((A),(B),(C))
|
||||
# define bzero(A,B) memset((A),0,(B))
|
||||
# define bmove_align(A,B,C) memcpy((A),(B),(C))
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
@ -120,15 +108,6 @@ extern void bfill(uchar *dst,size_t len,pchar fill);
|
||||
extern void bzero(uchar * dst,size_t len);
|
||||
#endif
|
||||
|
||||
#if !defined(bcmp) && !defined(HAVE_BCMP)
|
||||
extern size_t bcmp(const uchar *s1,const uchar *s2,size_t len);
|
||||
#endif
|
||||
#ifdef HAVE_purify
|
||||
extern size_t my_bcmp(const uchar *s1,const uchar *s2,size_t len);
|
||||
#undef bcmp
|
||||
#define bcmp(A,B,C) my_bcmp((A),(B),(C))
|
||||
#endif /* HAVE_purify */
|
||||
|
||||
#ifndef bmove512
|
||||
extern void bmove512(uchar *dst,const uchar *src,size_t len);
|
||||
#endif
|
||||
|
@ -159,22 +159,6 @@ static inline my_bool bitmap_cmp(const MY_BITMAP *map1, const MY_BITMAP *map2)
|
||||
#define bitmap_set_all(MAP) \
|
||||
(memset((MAP)->bitmap, 0xFF, 4*no_words_in_map((MAP))))
|
||||
|
||||
/**
|
||||
check, set and clear a bit of interest of an integer.
|
||||
|
||||
If the bit is out of range @retval -1. Otherwise
|
||||
bit_is_set @return 0 or 1 reflecting the bit is set or not;
|
||||
bit_do_set @return 1 (bit is set 1)
|
||||
bit_do_clear @return 0 (bit is cleared to 0)
|
||||
*/
|
||||
|
||||
#define bit_is_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \
|
||||
(((I) & (ULL(1) << (B))) == 0 ? 0 : 1) : -1)
|
||||
#define bit_do_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \
|
||||
((I) |= (ULL(1) << (B)), 1) : -1)
|
||||
#define bit_do_clear(I,B) (sizeof(I) * CHAR_BIT > (B) ? \
|
||||
((I) &= ~(ULL(1) << (B)), 0) : -1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -631,22 +631,30 @@ extern "C" int madvise(void *addr, size_t len, int behav);
|
||||
#define SIGNAL_HANDLER_RESET_ON_DELIVERY
|
||||
#endif
|
||||
|
||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS)
|
||||
#define LINT_INIT(var) var=0 /* No uninitialize-warning */
|
||||
/*
|
||||
Deprecated workaround for false-positive uninitialized variables
|
||||
warnings. Those should be silenced using tool-specific heuristics.
|
||||
|
||||
Enabled by default for g++ due to the bug referenced below.
|
||||
*/
|
||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
|
||||
(defined(__GNUC__) && defined(__cplusplus))
|
||||
#define LINT_INIT(var) var= 0
|
||||
#else
|
||||
#define LINT_INIT(var)
|
||||
#endif
|
||||
|
||||
/*
|
||||
/*
|
||||
Suppress uninitialized variable warning without generating code.
|
||||
|
||||
The _cplusplus is a temporary workaround for C++ code pending a fix
|
||||
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
|
||||
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
|
||||
*/
|
||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(__cplusplus) || \
|
||||
!defined(__GNUC__)
|
||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
|
||||
defined(__cplusplus) || !defined(__GNUC__)
|
||||
#define UNINIT_VAR(x) x= 0
|
||||
#else
|
||||
/* GCC specific self-initialization which inhibits the warning. */
|
||||
#define UNINIT_VAR(x) x= x
|
||||
#endif
|
||||
|
||||
@ -670,7 +678,6 @@ typedef unsigned short ushort;
|
||||
#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0)
|
||||
#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0)
|
||||
#define test_all_bits(a,b) (((a) & (b)) == (b))
|
||||
#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1))
|
||||
#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))
|
||||
|
||||
/* Define some general constants */
|
||||
|
@ -38,7 +38,7 @@ mystringsobjects = strmov.lo strxmov.lo strxnmov.lo strnmov.lo \
|
||||
strmake.lo strend.lo \
|
||||
strnlen.lo strfill.lo is_prefix.lo \
|
||||
int2str.lo str2int.lo strinstr.lo strcont.lo \
|
||||
strcend.lo bcmp.lo ctype-latin1.lo \
|
||||
strcend.lo ctype-latin1.lo \
|
||||
bchange.lo bmove.lo bmove_upp.lo longlong2str.lo \
|
||||
strtoull.lo strtoll.lo llstr.lo my_vsnprintf.lo \
|
||||
ctype.lo ctype-simple.lo ctype-bin.lo ctype-mb.lo \
|
||||
|
@ -159,7 +159,7 @@ int main(int argc, char* const argv[] )
|
||||
signal(SIGCHLD, handle_signal);
|
||||
signal(SIGABRT, handle_abort);
|
||||
|
||||
sprintf(safe_process_name, "safe_process[%d]", own_pid);
|
||||
sprintf(safe_process_name, "safe_process[%ld]", (long) own_pid);
|
||||
|
||||
message("Started");
|
||||
|
||||
|
@ -42,7 +42,7 @@ char * my_load_path(char * to, const char *path,
|
||||
if (is_cur)
|
||||
is_cur=2; /* Remove current dir */
|
||||
if (! my_getwd(buff,(uint) (FN_REFLEN-strlen(path)+is_cur),MYF(0)))
|
||||
(void) strncat(buff, path+is_cur, FN_REFLEN);
|
||||
(void) strncat(buff, path+is_cur, FN_REFLEN-1);
|
||||
else
|
||||
(void) strnmov(buff, path, FN_REFLEN); /* Return org file name */
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ void pack_dirname(char * to, const char *from)
|
||||
buff_length= strlen(buff);
|
||||
d_length= (size_t) (start-to);
|
||||
if ((start == to ||
|
||||
(buff_length == d_length && !bcmp(buff,start,d_length))) &&
|
||||
(buff_length == d_length && !memcmp(buff,start,d_length))) &&
|
||||
*start != FN_LIBCHAR && *start)
|
||||
{ /* Put current dir before */
|
||||
bchange((uchar*) to, d_length, (uchar*) buff, buff_length, strlen(to)+1);
|
||||
@ -70,7 +70,7 @@ void pack_dirname(char * to, const char *from)
|
||||
}
|
||||
if (length > 1 && length < d_length)
|
||||
{ /* test if /xx/yy -> ~/yy */
|
||||
if (bcmp(to,home_dir,length) == 0 && to[length] == FN_LIBCHAR)
|
||||
if (memcmp(to,home_dir,length) == 0 && to[length] == FN_LIBCHAR)
|
||||
{
|
||||
to[0]=FN_HOMELIB; /* Filename begins with ~ */
|
||||
(void) strmov_overlapp(to+1,to+length);
|
||||
@ -80,7 +80,7 @@ void pack_dirname(char * to, const char *from)
|
||||
{ /* Test if cwd is ~/... */
|
||||
if (length > 1 && length < buff_length)
|
||||
{
|
||||
if (bcmp(buff,home_dir,length) == 0 && buff[length] == FN_LIBCHAR)
|
||||
if (memcmp(buff,home_dir,length) == 0 && buff[length] == FN_LIBCHAR)
|
||||
{
|
||||
buff[0]=FN_HOMELIB;
|
||||
(void) strmov_overlapp(buff+1,buff+length);
|
||||
@ -166,7 +166,7 @@ size_t cleanup_dirname(register char *to, const char *from)
|
||||
*pos = FN_LIBCHAR;
|
||||
if (*pos == FN_LIBCHAR)
|
||||
{
|
||||
if ((size_t) (pos-start) > length && bcmp(pos-length,parent,length) == 0)
|
||||
if ((size_t) (pos-start) > length && memcmp(pos-length,parent,length) == 0)
|
||||
{ /* If .../../; skip prev */
|
||||
pos-=length;
|
||||
if (pos != start)
|
||||
@ -197,7 +197,7 @@ size_t cleanup_dirname(register char *to, const char *from)
|
||||
end_parentdir=pos;
|
||||
while (pos >= start && *pos != FN_LIBCHAR) /* remove prev dir */
|
||||
pos--;
|
||||
if (pos[1] == FN_HOMELIB || bcmp(pos,parent,length) == 0)
|
||||
if (pos[1] == FN_HOMELIB || memcmp(pos,parent,length) == 0)
|
||||
{ /* Don't remove ~user/ */
|
||||
pos=strmov(end_parentdir+1,parent);
|
||||
*pos=FN_LIBCHAR;
|
||||
@ -206,7 +206,7 @@ size_t cleanup_dirname(register char *to, const char *from)
|
||||
}
|
||||
}
|
||||
else if ((size_t) (pos-start) == length-1 &&
|
||||
!bcmp(start,parent+1,length-1))
|
||||
!memcmp(start,parent+1,length-1))
|
||||
start=pos; /* Starts with "../" */
|
||||
else if (pos-start > 0 && pos[-1] == FN_LIBCHAR)
|
||||
{
|
||||
|
@ -508,10 +508,8 @@ uint bitmap_get_first_set(const MY_BITMAP *map)
|
||||
if (*byte_ptr & (1 << k))
|
||||
return (i*32) + (j*8) + k;
|
||||
}
|
||||
DBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
DBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
return MY_BIT_NONE;
|
||||
@ -534,7 +532,7 @@ uint bitmap_get_first(const MY_BITMAP *map)
|
||||
{
|
||||
byte_ptr= (uchar*)data_ptr;
|
||||
for (j=0; ; j++, byte_ptr++)
|
||||
{
|
||||
{
|
||||
if (*byte_ptr != 0xFF)
|
||||
{
|
||||
for (k=0; ; k++)
|
||||
@ -542,10 +540,8 @@ uint bitmap_get_first(const MY_BITMAP *map)
|
||||
if (!(*byte_ptr & (1 << k)))
|
||||
return (i*32) + (j*8) + k;
|
||||
}
|
||||
DBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
DBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
return MY_BIT_NONE;
|
||||
|
@ -47,7 +47,7 @@ my_bool my_gethwaddr(uchar *to)
|
||||
uchar *buf, *next, *end, *addr;
|
||||
struct if_msghdr *ifm;
|
||||
struct sockaddr_dl *sdl;
|
||||
int i, res=1, mib[6]={CTL_NET, AF_ROUTE, 0, AF_LINK, NET_RT_IFLIST, 0};
|
||||
int res=1, mib[6]={CTL_NET, AF_ROUTE, 0, AF_LINK, NET_RT_IFLIST, 0};
|
||||
|
||||
if (sysctl(mib, 6, NULL, &len, NULL, 0) == -1)
|
||||
goto err;
|
||||
|
@ -28,7 +28,7 @@ typedef void (*init_func_p)(const struct my_option *option, void *variable,
|
||||
static void default_reporter(enum loglevel level, const char *format, ...);
|
||||
my_error_reporter my_getopt_error_reporter= &default_reporter;
|
||||
|
||||
static int findopt(char *, uint, const struct my_option **, char **);
|
||||
static int findopt(char *, uint, const struct my_option **, const char **);
|
||||
my_bool getopt_compare_strings(const char *, const char *, uint);
|
||||
static longlong getopt_ll(char *arg, const struct my_option *optp, int *err);
|
||||
static ulonglong getopt_ull(char *, const struct my_option *, int *);
|
||||
@ -113,8 +113,8 @@ int handle_options(int *argc, char ***argv,
|
||||
uint opt_found, argvpos= 0, length;
|
||||
my_bool end_of_options= 0, must_be_var, set_maximum_value,
|
||||
option_is_loose;
|
||||
char **pos, **pos_end, *optend, *UNINIT_VAR(prev_found),
|
||||
*opt_str, key_name[FN_REFLEN];
|
||||
char **pos, **pos_end, *optend, *opt_str, key_name[FN_REFLEN];
|
||||
const char *UNINIT_VAR(prev_found);
|
||||
const struct my_option *optp;
|
||||
void *value;
|
||||
int error, i;
|
||||
@ -185,7 +185,6 @@ int handle_options(int *argc, char ***argv,
|
||||
Find first the right option. Return error in case of an ambiguous,
|
||||
or unknown option
|
||||
*/
|
||||
LINT_INIT(prev_found);
|
||||
optp= longopts;
|
||||
if (!(opt_found= findopt(opt_str, length, &optp, &prev_found)))
|
||||
{
|
||||
@ -696,10 +695,10 @@ ret:
|
||||
|
||||
static int findopt(char *optpat, uint length,
|
||||
const struct my_option **opt_res,
|
||||
char **ffname)
|
||||
const char **ffname)
|
||||
{
|
||||
uint count;
|
||||
struct my_option *opt= (struct my_option *) *opt_res;
|
||||
const struct my_option *opt= *opt_res;
|
||||
|
||||
for (count= 0; opt->name; opt++)
|
||||
{
|
||||
@ -710,8 +709,9 @@ static int findopt(char *optpat, uint length,
|
||||
return 1;
|
||||
if (!count)
|
||||
{
|
||||
/* We only need to know one prev */
|
||||
count= 1;
|
||||
*ffname= (char *) opt->name; /* We only need to know one prev */
|
||||
*ffname= opt->name;
|
||||
}
|
||||
else if (strcmp(*ffname, opt->name))
|
||||
{
|
||||
|
@ -269,7 +269,6 @@ int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
|
||||
return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
|
||||
a+=a_length;
|
||||
b+=b_length;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case HA_KEYTYPE_INT8:
|
||||
|
@ -163,7 +163,7 @@ void *_mymalloc(size_t size, const char *filename, uint lineno, myf MyFlags)
|
||||
my_message(EE_OUTOFMEMORY, buff, MYF(ME_BELL+ME_WAITTANG+ME_NOREFRESH));
|
||||
}
|
||||
DBUG_PRINT("error",("Out of memory, in use: %ld at line %d, '%s'",
|
||||
(long)sf_malloc_max_memory,lineno, filename));
|
||||
(long) sf_malloc_max_memory, lineno, filename));
|
||||
DBUG_EXECUTE_IF("simulate_out_of_memory",
|
||||
DBUG_SET("-d,simulate_out_of_memory"););
|
||||
if (MyFlags & MY_FAE)
|
||||
|
@ -122,8 +122,7 @@ static int check_lock(struct st_lock_list *list, const char* lock_type,
|
||||
{
|
||||
THR_LOCK_DATA *data,**prev;
|
||||
uint count=0;
|
||||
THR_LOCK_OWNER *first_owner;
|
||||
LINT_INIT(first_owner);
|
||||
THR_LOCK_OWNER *UNINIT_VAR(first_owner);
|
||||
|
||||
prev= &list->data;
|
||||
if (list->data)
|
||||
|
@ -690,7 +690,6 @@ register cset *cs;
|
||||
case '-':
|
||||
SETERROR(REG_ERANGE);
|
||||
return; /* NOTE RETURN */
|
||||
break;
|
||||
default:
|
||||
c = '\0';
|
||||
break;
|
||||
|
@ -8280,7 +8280,13 @@ int Field_set::store(longlong nr, bool unsigned_val)
|
||||
{
|
||||
ASSERT_COLUMN_MARKED_FOR_WRITE;
|
||||
int error= 0;
|
||||
ulonglong max_nr= set_bits(ulonglong, typelib->count);
|
||||
ulonglong max_nr;
|
||||
|
||||
if (sizeof(ulonglong)*8 <= typelib->count)
|
||||
max_nr= ULONGLONG_MAX;
|
||||
else
|
||||
max_nr= (ULL(1) << typelib->count) - 1;
|
||||
|
||||
if ((ulonglong) nr > max_nr)
|
||||
{
|
||||
nr&= max_nr;
|
||||
|
@ -4400,8 +4400,7 @@ Item_field::fix_outer_field(THD *thd, Field **from_field, Item **reference)
|
||||
context->first_name_resolution_table,
|
||||
context->last_name_resolution_table,
|
||||
reference, REPORT_ALL_ERRORS,
|
||||
!any_privileges &&
|
||||
TRUE, TRUE);
|
||||
!any_privileges, TRUE);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -5131,8 +5131,6 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
|
||||
CHARSET_INFO *cs)
|
||||
{
|
||||
Item *UNINIT_VAR(res);
|
||||
ulong len;
|
||||
uint dec;
|
||||
|
||||
switch (cast_type) {
|
||||
case ITEM_CAST_BINARY:
|
||||
@ -5155,11 +5153,10 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
|
||||
break;
|
||||
case ITEM_CAST_DECIMAL:
|
||||
{
|
||||
if (c_len == NULL)
|
||||
{
|
||||
len= 0;
|
||||
}
|
||||
else
|
||||
ulong len= 0;
|
||||
uint dec= 0;
|
||||
|
||||
if (c_len)
|
||||
{
|
||||
ulong decoded_size;
|
||||
errno= 0;
|
||||
@ -5173,11 +5170,7 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
|
||||
len= decoded_size;
|
||||
}
|
||||
|
||||
if (c_dec == NULL)
|
||||
{
|
||||
dec= 0;
|
||||
}
|
||||
else
|
||||
if (c_dec)
|
||||
{
|
||||
ulong decoded_size;
|
||||
errno= 0;
|
||||
@ -5213,12 +5206,9 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
|
||||
}
|
||||
case ITEM_CAST_CHAR:
|
||||
{
|
||||
int len= -1;
|
||||
CHARSET_INFO *real_cs= (cs ? cs : thd->variables.collation_connection);
|
||||
if (c_len == NULL)
|
||||
{
|
||||
len= LL(-1);
|
||||
}
|
||||
else
|
||||
if (c_len)
|
||||
{
|
||||
ulong decoded_size;
|
||||
errno= 0;
|
||||
@ -5228,7 +5218,7 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
|
||||
my_error(ER_TOO_BIG_DISPLAYWIDTH, MYF(0), "cast as char", MAX_FIELD_BLOBLENGTH);
|
||||
return NULL;
|
||||
}
|
||||
len= decoded_size;
|
||||
len= (int) decoded_size;
|
||||
}
|
||||
res= new (thd->mem_root) Item_char_typecast(a, len, real_cs);
|
||||
break;
|
||||
|
@ -2044,7 +2044,7 @@ static int find_uniq_filename(char *name)
|
||||
file_info= dir_info->dir_entry;
|
||||
for (i= dir_info->number_off_files ; i-- ; file_info++)
|
||||
{
|
||||
if (bcmp((uchar*) file_info->name, (uchar*) start, length) == 0 &&
|
||||
if (memcmp(file_info->name, start, length) == 0 &&
|
||||
test_if_number(file_info->name+length, &number,0))
|
||||
{
|
||||
set_if_bigger(max_found,(ulong) number);
|
||||
|
@ -2982,7 +2982,7 @@ void Query_log_event::print_query_header(IO_CACHE* file,
|
||||
|
||||
if (likely(charset_inited) &&
|
||||
(unlikely(!print_event_info->charset_inited ||
|
||||
bcmp((uchar*) print_event_info->charset, (uchar*) charset, 6))))
|
||||
memcmp(print_event_info->charset, charset, 6))))
|
||||
{
|
||||
CHARSET_INFO *cs_info= get_charset(uint2korr(charset), MYF(MY_WME));
|
||||
if (cs_info)
|
||||
@ -3005,8 +3005,8 @@ void Query_log_event::print_query_header(IO_CACHE* file,
|
||||
}
|
||||
if (time_zone_len)
|
||||
{
|
||||
if (bcmp((uchar*) print_event_info->time_zone_str,
|
||||
(uchar*) time_zone_str, time_zone_len+1))
|
||||
if (memcmp(print_event_info->time_zone_str,
|
||||
time_zone_str, time_zone_len+1))
|
||||
{
|
||||
my_b_printf(file,"SET @@session.time_zone='%s'%s\n",
|
||||
time_zone_str, print_event_info->delimiter);
|
||||
@ -8654,7 +8654,7 @@ Rows_log_event::write_row(const Relay_log_info *const rli,
|
||||
|
||||
TABLE *table= m_table; // pointer to event's table
|
||||
int error;
|
||||
int keynum;
|
||||
int UNINIT_VAR(keynum);
|
||||
auto_afree_ptr<char> key(NULL);
|
||||
|
||||
/* fill table->record[0] with default values */
|
||||
@ -8848,19 +8848,19 @@ Rows_log_event::write_row(const Relay_log_info *const rli,
|
||||
|
||||
#endif
|
||||
|
||||
int
|
||||
int
|
||||
Write_rows_log_event::do_exec_row(const Relay_log_info *const rli)
|
||||
{
|
||||
DBUG_ASSERT(m_table != NULL);
|
||||
int error= write_row(rli, slave_exec_mode == SLAVE_EXEC_MODE_IDEMPOTENT);
|
||||
|
||||
|
||||
if (error && !thd->is_error())
|
||||
{
|
||||
DBUG_ASSERT(0);
|
||||
my_error(ER_UNKNOWN_ERROR, MYF(0));
|
||||
}
|
||||
|
||||
return error;
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
#endif /* !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) */
|
||||
|
@ -418,7 +418,7 @@ copy_extra_record_fields(TABLE *table,
|
||||
|
||||
DBUG_ASSERT(master_reclength <= table->s->reclength);
|
||||
if (master_reclength < table->s->reclength)
|
||||
bmove_align(table->record[0] + master_reclength,
|
||||
memcpy(table->record[0] + master_reclength,
|
||||
table->record[1] + master_reclength,
|
||||
table->s->reclength - master_reclength);
|
||||
|
||||
@ -697,7 +697,7 @@ static int find_and_fetch_row(TABLE *table, uchar *key)
|
||||
rnd_pos() returns the record in table->record[0], so we have to
|
||||
move it to table->record[1].
|
||||
*/
|
||||
bmove_align(table->record[1], table->record[0], table->s->reclength);
|
||||
memcpy(table->record[1], table->record[0], table->s->reclength);
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
@ -1190,7 +1190,7 @@ int Update_rows_log_event_old::do_exec_row(TABLE *table)
|
||||
overwriting the default values that where put there by the
|
||||
unpack_row() function.
|
||||
*/
|
||||
bmove_align(table->record[0], m_after_image, table->s->reclength);
|
||||
memcpy(table->record[0], m_after_image, table->s->reclength);
|
||||
copy_extra_record_fields(table, m_master_reclength, m_width);
|
||||
|
||||
/*
|
||||
|
@ -2649,7 +2649,6 @@ extern "C" sig_handler handle_segfault(int sig)
|
||||
{
|
||||
time_t curr_time;
|
||||
struct tm tm;
|
||||
THD *thd=current_thd;
|
||||
|
||||
/*
|
||||
Strictly speaking, one needs a mutex here
|
||||
@ -2709,13 +2708,15 @@ the thread stack. Please read http://dev.mysql.com/doc/mysql/en/linux.html\n\n",
|
||||
#endif /* HAVE_LINUXTHREADS */
|
||||
|
||||
#ifdef HAVE_STACKTRACE
|
||||
THD *thd=current_thd;
|
||||
|
||||
if (!(test_flags & TEST_NO_STACKTRACE))
|
||||
{
|
||||
fprintf(stderr,"thd: 0x%lx\n",(long) thd);
|
||||
fprintf(stderr,"\
|
||||
Attempting backtrace. You can use the following information to find out\n\
|
||||
where mysqld died. If you see no messages after this, something went\n\
|
||||
terribly wrong...\n");
|
||||
fprintf(stderr, "thd: 0x%lx\n",(long) thd);
|
||||
fprintf(stderr, "Attempting backtrace. You can use the following "
|
||||
"information to find out\nwhere mysqld died. If "
|
||||
"you see no messages after this, something went\n"
|
||||
"terribly wrong...\n");
|
||||
my_print_stacktrace(thd ? (uchar*) thd->thread_stack : NULL,
|
||||
my_thread_stack_size);
|
||||
}
|
||||
|
@ -1138,8 +1138,7 @@ bool Relay_log_info::cached_charset_compare(char *charset) const
|
||||
{
|
||||
DBUG_ENTER("Relay_log_info::cached_charset_compare");
|
||||
|
||||
if (bcmp((uchar*) cached_charset, (uchar*) charset,
|
||||
sizeof(cached_charset)))
|
||||
if (memcmp(cached_charset, charset, sizeof(cached_charset)))
|
||||
{
|
||||
memcpy(const_cast<char*>(cached_charset), charset, sizeof(cached_charset));
|
||||
DBUG_RETURN(1);
|
||||
|
@ -518,9 +518,9 @@ bool is_conversion_ok(int order, Relay_log_info *rli)
|
||||
{
|
||||
DBUG_ENTER("is_conversion_ok");
|
||||
bool allow_non_lossy=
|
||||
bit_is_set(slave_type_conversions_options, SLAVE_TYPE_CONVERSIONS_ALL_NON_LOSSY);
|
||||
slave_type_conversions_options & SLAVE_TYPE_CONVERSIONS_ALL_NON_LOSSY;
|
||||
bool allow_lossy=
|
||||
bit_is_set(slave_type_conversions_options, SLAVE_TYPE_CONVERSIONS_ALL_LOSSY);
|
||||
slave_type_conversions_options & SLAVE_TYPE_CONVERSIONS_ALL_LOSSY;
|
||||
|
||||
DBUG_PRINT("enter", ("order: %d, flags:%s%s", order,
|
||||
allow_non_lossy ? " ALL_NON_LOSSY" : "",
|
||||
|
@ -2295,7 +2295,7 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli)
|
||||
DBUG_PRINT("info", ("thd->options: %s%s; rli->last_event_start_time: %lu",
|
||||
FLAGSTR(thd->variables.option_bits, OPTION_NOT_AUTOCOMMIT),
|
||||
FLAGSTR(thd->variables.option_bits, OPTION_BEGIN),
|
||||
rli->last_event_start_time));
|
||||
(ulong) rli->last_event_start_time));
|
||||
|
||||
/*
|
||||
Execute the event to change the database and update the binary
|
||||
@ -3125,8 +3125,8 @@ pthread_handler_t handle_slave_sql(void *arg)
|
||||
char llbuff[22],llbuff1[22];
|
||||
char saved_log_name[FN_REFLEN];
|
||||
char saved_master_log_name[FN_REFLEN];
|
||||
my_off_t saved_log_pos;
|
||||
my_off_t saved_master_log_pos;
|
||||
my_off_t UNINIT_VAR(saved_log_pos);
|
||||
my_off_t UNINIT_VAR(saved_master_log_pos);
|
||||
my_off_t saved_skip= 0;
|
||||
|
||||
Relay_log_info* rli = &((Master_info*)arg)->rli;
|
||||
|
@ -8544,15 +8544,15 @@ my_bool mysql_rm_tmp_tables(void)
|
||||
(file->name[1] == '.' && !file->name[2])))
|
||||
continue;
|
||||
|
||||
if (!bcmp((uchar*) file->name, (uchar*) tmp_file_prefix,
|
||||
tmp_file_prefix_length))
|
||||
if (!memcmp(file->name, tmp_file_prefix,
|
||||
tmp_file_prefix_length))
|
||||
{
|
||||
char *ext= fn_ext(file->name);
|
||||
uint ext_len= strlen(ext);
|
||||
uint filePath_len= my_snprintf(filePath, sizeof(filePath),
|
||||
"%s%c%s", tmpdir, FN_LIBCHAR,
|
||||
file->name);
|
||||
if (!bcmp((uchar*) reg_ext, (uchar*) ext, ext_len))
|
||||
if (!memcmp(reg_ext, ext, ext_len))
|
||||
{
|
||||
handler *handler_file= 0;
|
||||
/* We should cut file extention before deleting of table */
|
||||
|
@ -257,8 +257,7 @@ bool log_in_use(const char* log_name)
|
||||
if ((linfo = tmp->current_linfo))
|
||||
{
|
||||
mysql_mutex_lock(&linfo->lock);
|
||||
result = !bcmp((uchar*) log_name, (uchar*) linfo->log_file_name,
|
||||
log_name_len);
|
||||
result = !memcmp(log_name, linfo->log_file_name, log_name_len);
|
||||
mysql_mutex_unlock(&linfo->lock);
|
||||
if (result)
|
||||
break;
|
||||
|
@ -146,7 +146,9 @@ typedef long long longlong;
|
||||
|
||||
#ifdef HAVE_DLOPEN
|
||||
|
||||
#if !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_SOLARIS_STYLE_GETHOST)
|
||||
static pthread_mutex_t LOCK_hostname;
|
||||
#endif
|
||||
|
||||
/* These must be right or mysqld will not find the symbol! */
|
||||
|
||||
|
@ -77,8 +77,8 @@ typedef struct st_ha_create_information HA_CREATE_INFO;
|
||||
#define SPECIAL_LOG_QUERIES_NOT_USING_INDEXES 4096 /* Obsolete */
|
||||
|
||||
/* Extern defines */
|
||||
#define store_record(A,B) bmove_align((A)->B,(A)->record[0],(size_t) (A)->s->reclength)
|
||||
#define restore_record(A,B) bmove_align((A)->record[0],(A)->B,(size_t) (A)->s->reclength)
|
||||
#define store_record(A,B) memcpy((A)->B,(A)->record[0],(size_t) (A)->s->reclength)
|
||||
#define restore_record(A,B) memcpy((A)->record[0],(A)->B,(size_t) (A)->s->reclength)
|
||||
#define cmp_record(A,B) memcmp((A)->record[0],(A)->B,(size_t) (A)->s->reclength)
|
||||
#define empty_record(A) { \
|
||||
restore_record((A),s->default_values); \
|
||||
|
@ -577,7 +577,7 @@ int hp_rec_key_cmp(HP_KEYDEF *keydef, const uchar *rec1, const uchar *rec2,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bcmp(rec1+seg->start,rec2+seg->start,seg->length))
|
||||
if (memcmp(rec1+seg->start,rec2+seg->start,seg->length))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -660,7 +660,7 @@ int hp_key_cmp(HP_KEYDEF *keydef, const uchar *rec, const uchar *key)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bcmp(rec+seg->start,key,seg->length))
|
||||
if (memcmp(rec+seg->start,key,seg->length))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
@ -401,7 +401,7 @@ int main(int argc, char *argv[])
|
||||
bmove(record2,record,reclength);
|
||||
if (heap_rsame(file,record,-1) || heap_rsame(file,record2,2))
|
||||
goto err;
|
||||
if (bcmp(record2,record,reclength))
|
||||
if (memcmp(record2,record,reclength))
|
||||
{
|
||||
puts("heap_rsame didn't find right record");
|
||||
goto end;
|
||||
@ -410,7 +410,7 @@ int main(int argc, char *argv[])
|
||||
puts("- Test of read through position");
|
||||
if (heap_rrnd(file,record,position))
|
||||
goto err;
|
||||
if (bcmp(record3,record,reclength))
|
||||
if (memcmp(record3,record,reclength))
|
||||
{
|
||||
puts("heap_frnd didn't find right record");
|
||||
goto end;
|
||||
|
@ -84,7 +84,7 @@ int _mi_search(register MI_INFO *info, register MI_KEYDEF *keyinfo,
|
||||
if (!(buff=_mi_fetch_keypage(info,keyinfo,pos,DFLT_INIT_HITS,info->buff,
|
||||
test(!(nextflag & SEARCH_SAVE_BUFF)))))
|
||||
goto err;
|
||||
DBUG_DUMP("page",(uchar*) buff,mi_getint(buff));
|
||||
DBUG_DUMP("page", buff, mi_getint(buff));
|
||||
|
||||
flag=(*keyinfo->bin_search)(info,keyinfo,buff,key,key_len,nextflag,
|
||||
&keypos,lastkey, &last_key);
|
||||
@ -819,7 +819,7 @@ uint _mi_get_pack_key(register MI_KEYDEF *keyinfo, uint nod_flag,
|
||||
DBUG_PRINT("error",
|
||||
("Found too long null packed key: %u of %u at 0x%lx",
|
||||
length, keyseg->length, (long) *page_pos));
|
||||
DBUG_DUMP("key",(uchar*) *page_pos,16);
|
||||
DBUG_DUMP("key", *page_pos, 16);
|
||||
mi_print_error(keyinfo->share, HA_ERR_CRASHED);
|
||||
my_errno=HA_ERR_CRASHED;
|
||||
return 0;
|
||||
@ -876,7 +876,7 @@ uint _mi_get_pack_key(register MI_KEYDEF *keyinfo, uint nod_flag,
|
||||
{
|
||||
DBUG_PRINT("error",("Found too long packed key: %u of %u at 0x%lx",
|
||||
length, keyseg->length, (long) *page_pos));
|
||||
DBUG_DUMP("key",(uchar*) *page_pos,16);
|
||||
DBUG_DUMP("key", *page_pos, 16);
|
||||
mi_print_error(keyinfo->share, HA_ERR_CRASHED);
|
||||
my_errno=HA_ERR_CRASHED;
|
||||
return 0; /* Error */
|
||||
@ -948,7 +948,7 @@ uint _mi_get_binary_pack_key(register MI_KEYDEF *keyinfo, uint nod_flag,
|
||||
DBUG_PRINT("error",
|
||||
("Found too long binary packed key: %u of %u at 0x%lx",
|
||||
length, keyinfo->maxlength, (long) *page_pos));
|
||||
DBUG_DUMP("key",(uchar*) *page_pos,16);
|
||||
DBUG_DUMP("key", *page_pos, 16);
|
||||
mi_print_error(keyinfo->share, HA_ERR_CRASHED);
|
||||
my_errno=HA_ERR_CRASHED;
|
||||
DBUG_RETURN(0); /* Wrong key */
|
||||
|
@ -415,7 +415,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
ant=0;
|
||||
while (mi_rprev(file,read_record3,0) == 0 &&
|
||||
bcmp(read_record3+start,key,length) == 0) ant++;
|
||||
memcmp(read_record3+start,key,length) == 0) ant++;
|
||||
if (ant != dupp_keys)
|
||||
{
|
||||
printf("prev: Found: %d records of %d\n",ant,dupp_keys);
|
||||
@ -453,7 +453,7 @@ int main(int argc, char *argv[])
|
||||
goto end;
|
||||
}
|
||||
if (mi_rlast(file,read_record2,0) ||
|
||||
bcmp(read_record2,read_record3,reclength))
|
||||
memcmp(read_record2,read_record3,reclength))
|
||||
{
|
||||
printf("Can't find last record\n");
|
||||
DBUG_DUMP("record2",(uchar*) read_record2,reclength);
|
||||
@ -468,7 +468,7 @@ int main(int argc, char *argv[])
|
||||
printf("prev: I found: %d records of %d\n",ant,write_count);
|
||||
goto end;
|
||||
}
|
||||
if (bcmp(read_record,read_record3,reclength))
|
||||
if (memcmp(read_record,read_record3,reclength))
|
||||
{
|
||||
printf("Can't find first record\n");
|
||||
goto end;
|
||||
@ -483,7 +483,7 @@ int main(int argc, char *argv[])
|
||||
mi_rprev(file,read_record3,0) == 0 ||
|
||||
mi_rnext(file,read_record3,0))
|
||||
goto err;
|
||||
if (bcmp(read_record,read_record3,reclength) != 0)
|
||||
if (memcmp(read_record,read_record3,reclength) != 0)
|
||||
printf("Can't find first record\n");
|
||||
|
||||
if (!silent)
|
||||
@ -495,7 +495,7 @@ int main(int argc, char *argv[])
|
||||
mi_rnext(file,read_record3,0) == 0 ||
|
||||
mi_rprev(file,read_record3,0))
|
||||
goto err;
|
||||
if (bcmp(read_record2,read_record3,reclength))
|
||||
if (memcmp(read_record2,read_record3,reclength))
|
||||
printf("Can't find last record\n");
|
||||
#ifdef NOT_ANYMORE
|
||||
if (!silent)
|
||||
@ -509,7 +509,7 @@ int main(int argc, char *argv[])
|
||||
bzero((char*) file->lastkey,file->s->base.max_key_length*2);
|
||||
if (mi_rkey(file,read_record,0,key2,(uint) i,HA_READ_PREFIX))
|
||||
goto err;
|
||||
if (bcmp(read_record+start,key,(uint) i))
|
||||
if (memcmp(read_record+start,key,(uint) i))
|
||||
{
|
||||
puts("Didn't find right record");
|
||||
goto end;
|
||||
@ -528,7 +528,7 @@ int main(int argc, char *argv[])
|
||||
opt_delete++;
|
||||
ant=1;
|
||||
while (mi_rnext(file,read_record3,0) == 0 &&
|
||||
bcmp(read_record3+start,key,length) == 0) ant++;
|
||||
memcmp(read_record3+start,key,length) == 0) ant++;
|
||||
if (ant != dupp_keys-1)
|
||||
{
|
||||
printf("next: I can only find: %d keys of %d\n",ant,dupp_keys-1);
|
||||
@ -546,7 +546,7 @@ int main(int argc, char *argv[])
|
||||
opt_delete++;
|
||||
ant=1;
|
||||
while (mi_rprev(file,read_record3,0) == 0 &&
|
||||
bcmp(read_record3+start,key,length) == 0) ant++;
|
||||
memcmp(read_record3+start,key,length) == 0) ant++;
|
||||
if (ant != dupp_keys-2)
|
||||
{
|
||||
printf("next: I can only find: %d keys of %d\n",ant,dupp_keys-2);
|
||||
@ -566,7 +566,7 @@ int main(int argc, char *argv[])
|
||||
if (mi_rnext(file,read_record,0))
|
||||
goto err; /* Skall finnas poster */
|
||||
while (mi_rnext(file,read_record3,0) == 0 &&
|
||||
bcmp(read_record3+start,key,length) == 0) ant++;
|
||||
memcmp(read_record3+start,key,length) == 0) ant++;
|
||||
if (ant != dupp_keys-3)
|
||||
{
|
||||
printf("next: I can only find: %d keys of %d\n",ant,dupp_keys-3);
|
||||
@ -581,7 +581,7 @@ int main(int argc, char *argv[])
|
||||
opt_delete++;
|
||||
ant=0;
|
||||
while (mi_rprev(file,read_record3,0) == 0 &&
|
||||
bcmp(read_record3+start,key,length) == 0) ant++;
|
||||
memcmp(read_record3+start,key,length) == 0) ant++;
|
||||
if (ant != dupp_keys-4)
|
||||
{
|
||||
printf("next: I can only find: %d keys of %d\n",ant,dupp_keys-4);
|
||||
@ -604,7 +604,7 @@ int main(int argc, char *argv[])
|
||||
for (i=min(2,keys) ; i-- > 0 ;)
|
||||
{
|
||||
if (mi_rsame(file,read_record2,(int) i)) goto err;
|
||||
if (bcmp(read_record,read_record2,reclength) != 0)
|
||||
if (memcmp(read_record,read_record2,reclength) != 0)
|
||||
{
|
||||
printf("is_rsame didn't find same record\n");
|
||||
goto end;
|
||||
|
@ -56,7 +56,7 @@ my_bool mi_check_unique(MI_INFO *info, MI_UNIQUEDEF *def, uchar *record,
|
||||
if (_mi_search_next(info,info->s->keyinfo+def->key, info->lastkey,
|
||||
MI_UNIQUE_HASH_LENGTH, SEARCH_BIGGER,
|
||||
info->s->state.key_root[def->key]) ||
|
||||
bcmp((char*) info->lastkey, (char*) key_buff, MI_UNIQUE_HASH_LENGTH))
|
||||
memcmp(info->lastkey, key_buff, MI_UNIQUE_HASH_LENGTH))
|
||||
{
|
||||
info->page_changed=1; /* Can't optimize read next */
|
||||
info->lastpos=lastpos;
|
||||
|
@ -298,9 +298,8 @@ extern "C" int myisammrg_parent_open_callback(void *callback_param,
|
||||
if (! db || ! table_name)
|
||||
DBUG_RETURN(1);
|
||||
|
||||
DBUG_PRINT("myrg", ("open: '%.*s'.'%.*s'", db_length, db,
|
||||
table_name_length, table_name));
|
||||
|
||||
DBUG_PRINT("myrg", ("open: '%.*s'.'%.*s'", (int) db_length, db,
|
||||
(int) table_name_length, table_name));
|
||||
|
||||
/* Convert to lowercase if required. */
|
||||
if (lower_case_table_names && table_name_length)
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
|
||||
|
||||
SET(STRINGS_SOURCES bchange.c bcmp.c bfill.c bmove512.c bmove_upp.c ctype-big5.c ctype-bin.c ctype-cp932.c
|
||||
SET(STRINGS_SOURCES bchange.c bfill.c bmove512.c bmove_upp.c ctype-big5.c ctype-bin.c ctype-cp932.c
|
||||
ctype-czech.c ctype-euc_kr.c ctype-eucjpms.c ctype-extra.c ctype-gb2312.c ctype-gbk.c
|
||||
ctype-latin1.c ctype-mb.c ctype-simple.c ctype-sjis.c ctype-tis620.c ctype-uca.c
|
||||
ctype-ucs2.c ctype-ujis.c ctype-utf8.c ctype-win1250ch.c ctype.c decimal.c dtoa.c int2str.c
|
||||
|
@ -30,19 +30,19 @@ pkglib_LIBRARIES = libmystrings.a
|
||||
# Exact one of ASSEMBLER_X
|
||||
if ASSEMBLER_x86
|
||||
ASRCS = strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
|
||||
CSRCS = bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c my_strchr.c dtoa.c strmov.c
|
||||
CSRCS = bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c my_strchr.c dtoa.c strmov.c
|
||||
else
|
||||
if ASSEMBLER_sparc32
|
||||
# These file MUST all be on the same line!! Otherwise automake
|
||||
# generats a very broken makefile
|
||||
ASRCS = bmove_upp-sparc.s strappend-sparc.s strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s strnmov-sparc.s strstr-sparc.s
|
||||
CSRCS = strcont.c strfill.c strcend.c is_prefix.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c strxmov.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c dtoa.c strmov.c
|
||||
CSRCS = strcont.c strfill.c strcend.c is_prefix.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c strxmov.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c dtoa.c strmov.c
|
||||
else
|
||||
#no assembler
|
||||
ASRCS =
|
||||
# These file MUST all be on the same line!! Otherwise automake
|
||||
# generats a very broken makefile
|
||||
CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c dtoa.c
|
||||
CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c dtoa.c
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -66,7 +66,7 @@ EXTRA_DIST = ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc
|
||||
CHARSET_INFO.txt
|
||||
|
||||
libmystrings_a_LIBADD=
|
||||
conf_to_src_SOURCES = conf_to_src.c xml.c ctype.c bcmp.c
|
||||
conf_to_src_SOURCES = conf_to_src.c xml.c ctype.c
|
||||
conf_to_src_LDADD=
|
||||
#force static linking of conf_to_src - essential when linking against
|
||||
#custom installation of libc
|
||||
|
@ -1,66 +0,0 @@
|
||||
/* Copyright (C) 2000 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
/*
|
||||
bcmp(s1, s2, len) returns 0 if the "len" bytes starting at "s1" are
|
||||
identical to the "len" bytes starting at "s2", non-zero if they are
|
||||
different.
|
||||
Now only used with purify because purify gives wrong warnings when
|
||||
comparing a shorter string with bcmp.
|
||||
*/
|
||||
|
||||
#include <my_global.h>
|
||||
#include "m_string.h"
|
||||
|
||||
#ifdef HAVE_purify
|
||||
#undef bcmp
|
||||
#undef HAVE_BCMP
|
||||
#endif
|
||||
|
||||
#if !defined(bcmp) && !defined(HAVE_BCMP)
|
||||
|
||||
#if defined(MC68000) && defined(DS90)
|
||||
|
||||
int bcmp(s1,s2, len)
|
||||
const char *s1;
|
||||
const char *s2;
|
||||
uint len; /* 0 <= len <= 65535 */
|
||||
{
|
||||
asm(" movl 12(a7),d0 ");
|
||||
asm(" subqw #1,d0 ");
|
||||
asm(" blt .L5 ");
|
||||
asm(" movl 4(a7),a1 ");
|
||||
asm(" movl 8(a7),a0 ");
|
||||
asm(".L4: cmpmb (a0)+,(a1)+ ");
|
||||
asm(" dbne d0,.L4 ");
|
||||
asm(".L5: addqw #1,d0 ");
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#ifndef HAVE_purify
|
||||
size_t bcmp(register const uchar *s1,register const uchar *s2,
|
||||
register size_t len)
|
||||
#else
|
||||
size_t my_bcmp(register const uchar *s1,register const uchar *s2,
|
||||
register size_t len)
|
||||
#endif
|
||||
{
|
||||
while (len-- != 0 && *s1++ == *s2++) ;
|
||||
return len+1;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* BSD_FUNCS */
|
@ -50,10 +50,10 @@ int main(void)
|
||||
errors=tests=0;
|
||||
init_strings();
|
||||
|
||||
test_arg("bcmp(from,to,5)",(long) my_test(bcmp(from,to,5)),1L);
|
||||
test_arg("bcmp(from,from,5)",(long) bcmp(from,from,5),0L);
|
||||
test_arg("memcmp(from,to,5)",(long) my_test(memcmp(from,to,5)),1L);
|
||||
test_arg("memcmp(from,from,5)",(long) memcmp(from,from,5),0L);
|
||||
|
||||
test_arg("bcmp(from,to,0)",(long) bcmp(from,to,0),0L);
|
||||
test_arg("memcmp(from,to,0)",(long) memcmp(from,to,0),0L);
|
||||
test_arg("strend(from)",(long) strend(from),(long) from+F_LEN);
|
||||
test_arg("strchr(v1,'M')",(long) strchr(v1,'M'),(long) v1);
|
||||
test_arg("strchr(v1,'y')",(long) strchr(v1,'y'),(long) v1+4);
|
||||
@ -93,7 +93,7 @@ int main(void)
|
||||
test_strarg("bmove_upp(to+6,from+6,3)",(bmove_upp(to+6,from+6,3),0L),INT_MAX32,
|
||||
3,T_CHAR,3,F_CHAR,0,0);
|
||||
test_strarg("bmove_upp(to,from,0)",(bmove_upp(to,from,0),0L),INT_MAX32,0,0);
|
||||
test_strarg("bmove_align(to,from,8)",(bmove_align(to,from,8),0L),INT_MAX32,
|
||||
test_strarg("memcpy(to,from,8)",(memcpy(to,from,8),0L),INT_MAX32,
|
||||
8,F_CHAR,0,0);
|
||||
test_strarg("strappend(to,3,' ')",(strappend(to,3,' '),0L),INT_MAX32,
|
||||
3,T_CHAR,1,0,T_LEN-4,T_CHAR,1,0,0,0);
|
||||
@ -233,7 +233,7 @@ int compare_buff(const char *message, char * b1, char * b2, int length,
|
||||
{
|
||||
int i,error=0;
|
||||
|
||||
if (bcmp(b1,b2,length))
|
||||
if (memcmp(b1,b2,length))
|
||||
{
|
||||
errors++;
|
||||
printf("func: '%s' Buffers differ\nIs: ",message);
|
||||
|
@ -123,16 +123,16 @@ static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
|
||||
a->beg=p->cur;
|
||||
a->end=p->cur;
|
||||
|
||||
if ((p->end - p->cur > 3) && !bcmp(p->cur,"<!--",4))
|
||||
if ((p->end - p->cur > 3) && !memcmp(p->cur,"<!--",4))
|
||||
{
|
||||
for (; (p->cur < p->end) && bcmp(p->cur, "-->", 3); p->cur++)
|
||||
for (; (p->cur < p->end) && memcmp(p->cur, "-->", 3); p->cur++)
|
||||
{}
|
||||
if (!bcmp(p->cur, "-->", 3))
|
||||
if (!memcmp(p->cur, "-->", 3))
|
||||
p->cur+=3;
|
||||
a->end=p->cur;
|
||||
lex=MY_XML_COMMENT;
|
||||
}
|
||||
else if (!bcmp(p->cur, "<![CDATA[",9))
|
||||
else if (!memcmp(p->cur, "<![CDATA[",9))
|
||||
{
|
||||
p->cur+= 9;
|
||||
for (; p->cur < p->end - 2 ; p->cur++)
|
||||
|
Loading…
x
Reference in New Issue
Block a user