summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extra/yassl/taocrypt/src/integer.cpp7
-rw-r--r--extra/yassl/taocrypt/src/template_instnt.cpp26
-rw-r--r--mysys/my_access.c2
-rw-r--r--sql/item_func.cc11
4 files changed, 24 insertions, 22 deletions
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp
index 3df1df9beab..deea376189c 100644
--- a/extra/yassl/taocrypt/src/integer.cpp
+++ b/extra/yassl/taocrypt/src/integer.cpp
@@ -3940,9 +3940,10 @@ Integer CRT(const Integer &xp, const Integer &p, const Integer &xq,
}
#ifdef __GNUC__
-template unsigned int DivideThreeWordsByTwo<unsigned int, DWord>(unsigned int*, unsigned int, unsigned int, DWord*);
-template unsigned int DivideThreeWordsByTwo<unsigned int, Word>(unsigned int*, unsigned int, unsigned int, Word*);
-template unsigned long long DivideThreeWordsByTwo<unsigned long long, DWord>(unsigned long long*, unsigned long long, unsigned long long, DWord*);
+#ifndef TAOCRYPT_NATIVE_DWORD_AVAILABLE
+template hword DivideThreeWordsByTwo<hword, Word>(hword*, hword, hword, Word*);
+#endif
+template word DivideThreeWordsByTwo<word, DWord>(word*, word, word, DWord*);
#endif
} // namespace
diff --git a/extra/yassl/taocrypt/src/template_instnt.cpp b/extra/yassl/taocrypt/src/template_instnt.cpp
index 5fed1ee5ae4..81a8273c5c3 100644
--- a/extra/yassl/taocrypt/src/template_instnt.cpp
+++ b/extra/yassl/taocrypt/src/template_instnt.cpp
@@ -9,29 +9,27 @@ namespace TaoCrypt {
#if defined(SSE2_INTRINSICS_AVAILABLE)
template AlignedAllocator<unsigned int>::pointer StdReallocate<unsigned int, AlignedAllocator<unsigned int> >(AlignedAllocator<unsigned int>&, unsigned int*, AlignedAllocator<unsigned int>::size_type, AlignedAllocator<unsigned int>::size_type, bool);
#endif
-template AllocatorWithCleanup<unsigned char>::pointer StdReallocate<unsigned char, AllocatorWithCleanup<unsigned char> >(AllocatorWithCleanup<unsigned char>&, unsigned char*, AllocatorWithCleanup<unsigned char>::size_type, AllocatorWithCleanup<unsigned char>::size_type, bool);
-template AllocatorWithCleanup<unsigned int>::pointer StdReallocate<unsigned int, AllocatorWithCleanup<unsigned int> >(AllocatorWithCleanup<unsigned int>&, unsigned int*, AllocatorWithCleanup<unsigned int>::size_type, AllocatorWithCleanup<unsigned int>::size_type, bool);
-template AllocatorWithCleanup<unsigned long long>::pointer StdReallocate<unsigned long long, AllocatorWithCleanup<unsigned long long> >(AllocatorWithCleanup<unsigned long long>&, unsigned long long*, AllocatorWithCleanup<unsigned long long>::size_type, AllocatorWithCleanup<unsigned long long>::size_type, bool);
template class RSA_Decryptor<RSA_BlockType2>;
template class RSA_Encryptor<RSA_BlockType1>;
template class RSA_Encryptor<RSA_BlockType2>;
+template void tcDelete<HASH>(HASH*);
+template void tcArrayDelete<byte>(byte*);
+template AllocatorWithCleanup<byte>::pointer StdReallocate<byte, AllocatorWithCleanup<byte> >(AllocatorWithCleanup<byte>&, byte*, AllocatorWithCleanup<byte>::size_type, AllocatorWithCleanup<byte>::size_type, bool);
+template void tcArrayDelete<word>(word*);
+template AllocatorWithCleanup<word>::pointer StdReallocate<word, AllocatorWithCleanup<word> >(AllocatorWithCleanup<word>&, word*, AllocatorWithCleanup<word>::size_type, AllocatorWithCleanup<word>::size_type, bool);
+#ifndef TAOCRYPT_SLOW_WORD64 // defined when word != word32
+template void tcArrayDelete<word32>(word32*);
+template AllocatorWithCleanup<word32>::pointer StdReallocate<word32, AllocatorWithCleanup<word32> >(AllocatorWithCleanup<word32>&, word32*, AllocatorWithCleanup<word32>::size_type, AllocatorWithCleanup<word32>::size_type, bool);
+#endif
+template void tcArrayDelete<char>(char*);
}
namespace mySTL {
-template vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned int, vector<TaoCrypt::Integer> const&);
-template vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, unsigned long, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, unsigned long, vector<TaoCrypt::Integer> const&);
+template vector<TaoCrypt::Integer>* uninit_fill_n<vector<TaoCrypt::Integer>*, size_t, vector<TaoCrypt::Integer> >(vector<TaoCrypt::Integer>*, size_t, vector<TaoCrypt::Integer> const&);
template void destroy<vector<TaoCrypt::Integer>*>(vector<TaoCrypt::Integer>*, vector<TaoCrypt::Integer>*);
template TaoCrypt::Integer* uninit_copy<TaoCrypt::Integer*, TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*, TaoCrypt::Integer*);
-template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer>(TaoCrypt::Integer*, unsigned int, TaoCrypt::Integer const&);
-template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, unsigned long, TaoCrypt::Integer>(TaoCrypt::Integer*, unsigned long, TaoCrypt::Integer const&);
+template TaoCrypt::Integer* uninit_fill_n<TaoCrypt::Integer*, size_t, TaoCrypt::Integer>(TaoCrypt::Integer*, size_t, TaoCrypt::Integer const&);
template void destroy<TaoCrypt::Integer*>(TaoCrypt::Integer*, TaoCrypt::Integer*);
}
-namespace TaoCrypt {
-template void tcDelete<HASH>(HASH*);
-template void tcArrayDelete<unsigned>(unsigned*);
-template void tcArrayDelete<unsigned long long>(unsigned long long*);
-template void tcArrayDelete<unsigned char>(unsigned char*);
-template void tcArrayDelete<char>(char*);
-}
#endif
diff --git a/mysys/my_access.c b/mysys/my_access.c
index 89e90e16f18..28210bdfc7d 100644
--- a/mysys/my_access.c
+++ b/mysys/my_access.c
@@ -44,7 +44,7 @@ int my_access(const char *path, int amode)
result= GetFileAttributesEx(path, GetFileExInfoStandard, &fileinfo);
if (! result ||
- (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_READONLY) && (amode & F_OK))
+ (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_READONLY) && (amode & W_OK))
{
my_errno= errno= EACCES;
return -1;
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 18c2efb0ace..5af99cb8132 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -695,8 +695,8 @@ String *Item_int_func::val_str(String *str)
/*
- Check arguments here to determine result's type for function with two
- arguments.
+ Check arguments here to determine result's type for a numeric
+ function of two arguments.
SYNOPSIS
Item_num_op::find_num_type()
@@ -722,8 +722,9 @@ void Item_num_op::find_num_type(void)
hybrid_type= DECIMAL_RESULT;
result_precision();
}
- else if (r0 == INT_RESULT && r1 == INT_RESULT)
+ else
{
+ DBUG_ASSERT(r0 == INT_RESULT && r1 == INT_RESULT);
decimals= 0;
hybrid_type=INT_RESULT;
result_precision();
@@ -738,7 +739,9 @@ void Item_num_op::find_num_type(void)
/*
- Set result type of function if it (type) is depends only on first argument
+ Set result type for a numeric function of one argument
+ (can be also used by a numeric function of many arguments, if the result
+ type depends only on the first argument)
SYNOPSIS
Item_func_num1::find_num_type()