From: Martin Skold Date: April 27 2010 11:38am Subject: bzr commit into mysql-5.1-telco-7.1 branch (Martin.Skold:3572) Bug#31853 List-Archive: http://lists.mysql.com/commits/106630 X-Bug: 31853 Message-Id: <201004271138.o3RBcBOn009662@quadfish.liljeholmen.mysql.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/marty/MySQL/mysql-5.1-telco-7.1/ 3572 Martin Skold 2010-04-27 [merge] Merge modified: storage/ndb/src/ndbjtie/utils/mystdint.h win/configure.js === modified file 'storage/ndb/src/ndbjtie/utils/mystdint.h' --- a/storage/ndb/src/ndbjtie/utils/mystdint.h 2010-04-06 02:58:31 +0000 +++ b/storage/ndb/src/ndbjtie/utils/mystdint.h 2010-04-27 09:53:30 +0000 @@ -23,49 +23,47 @@ #define mystdint_h /* - * Definition of C99's exact-width integral types for NDB-independent code. + * Definition of C99's exact-width integral types for JTie. * - * JTie pre-defines type mappings for the C99 exact-width type aliases - * int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t - * as defined in as well as uses these types internally. + * JTie has pre-defined type mappings for the C99 exact-width type aliases: + * int8_t, uint8_t, ... int64_t, uint64_t, which are a more natural fit for + * Java than the native, integral C types, char ... long long, * - * Unfortunately, some C/C++ compiler still lack a stdint.h header file. - * (For instance, MS Visual Studio until VS2010.) We delegate to a helper - * file that handles the absence of the . + * Unfortunately, the C99 file is not provided by some C/C++ + * compilers. (It's a crying shame. For instance, MS Visual Studio + * provides not until VS2010.) Therefore, this header deals in a + * single place with the presence or absence of the file. * - * Applications of JTie (like NDB JTie) may define their own type aliases - * for exact-width types (like Uint8, Int8 etc), for which type mappings can - * be easily provided with just a few (NDB) JTie (_trait alias) definitions. - * - * Here, we do NOT want to introduce artificial dependencies by referring to - * application-specific aliases for JTie's generic implementation and tests: - * compiler/platform testing has proven (!) much easier when the JTie core - * code is self-contained and the JTie unit tests compile & run standalone. + * While JTie applications (like NDB JTie) may have their own type aliases + * for exact-width types, it is preferrable not use these as the basis for + * JTie's implementation and tests itself -- for platform testing has proven + * much easier with a self-contained, standalone-compilable and -testable + * JTie unit tests, where problematic patterns can be readily identified. + * Hence, applications with their own, non-stdint-based exact-width type + * definitions should add and use corresponding JTie type mapping aliases. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#else -// MS Visual Studio provides not until VS2010 -// (VC7/VS2003=1310, VC8/VS2005=1400, VC9/VS2008=1500, VC10/VS2010=1600) -# if defined(_MSC_VER) && (_MSC_VER >= 1600) -# define HAVE_STDINT_H 1 -# endif // defined(_MSC_VER) && (_MSC_VER >= 1600) -#endif // !HAVE_STDINT_H - +#include #ifdef HAVE_STDINT_H -# include // not using namespaces yet + +#include // not using namespaces yet + #else -// C99 stdint type aliases for ILP32 and LP64 programming models + +// this covers ILP32 and LP64 programming models +#ifndef __SunOS_5_9 typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; typedef signed long int32_t; typedef unsigned long uint32_t; typedef signed long long int64_t; typedef unsigned long long uint64_t; +#endif +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; + #endif // !HAVE_STDINT_H #endif // mystdint_h + === modified file 'win/configure.js' --- a/win/configure.js 2010-03-12 15:58:18 +0000 +++ b/win/configure.js 2010-04-27 09:30:20 +0000 @@ -245,13 +245,20 @@ function GetJavaNdbVersion(str) } } - for(i = 0; i < 4; i++) + for(i = 0; i < 3; i++) { - if(version[i] == null) return null; + if(version[i] == "" || version[i] == null) + { + return null; + } } var res = ""; - res = res.concat(version[0], ".", version[1], ".", version[2], ".", version[3]); + res = res.concat(version[0], ".", version[1], ".", version[2]); + if(version[3] != "" && version[3] != null) + { + res = res.concat(".", version[3]); + } return res; }