|
|
Re: Patch to fix char signedness issue on ppc: msg#00067
db.mysql.c++
|
Subject: |
Re: Patch to fix char signedness issue on ppc |
Nice patch. I have always used: CFLAGS/CXXFLAGS with -fsigned-char to
compile on Linux/PPC.
Regards,
Ovidiu
Michael Hanselmann wrote:
Hello
On Linux/ppc, gcc uses unsigned char's by default. query.cpp constructs
an object of SQLParseElement and gives it a value of -1 for the "char"
parameter (n). Later this value is compared to -1, which will be 255
when using unsigned chars. The result is a wrongly thrown exception. The
attached patch changes the type to "short int" where the number is used.
Signed-off-by: Michael Hanselmann <mysql@xxxxxxxxx>
Greets,
Michael
------------------------------------------------------------------------
diff -ru mysql++-2.1.1.orig/lib/qparms.h mysql++-2.1.1/lib/qparms.h
--- mysql++-2.1.1.orig/lib/qparms.h 2006-04-05 06:44:49.000000000 +0200
+++ mysql++-2.1.1/lib/qparms.h 2006-11-23 00:11:05.000000000 +0100
@@ -232,7 +232,7 @@
/// \param b the 'before' value
/// \param o the 'option' value
/// \param n the 'num' value
- SQLParseElement(std::string b, char o, char n) :
+ SQLParseElement(std::string b, char o, short int n) :
before(b),
option(o),
num(n)
@@ -241,7 +241,7 @@
std::string before; ///< string inserted before the
parameter
char option; ///< the parameter option, or blank if
none
- char num; ///< the parameter position to
use
+ short int num; ///< the parameter position to use
};
} // end namespace mysqlpp
diff -ru mysql++-2.1.1.orig/lib/query.cpp mysql++-2.1.1/lib/query.cpp
--- mysql++-2.1.1.orig/lib/query.cpp 2006-04-05 06:44:49.000000000 +0200
+++ mysql++-2.1.1/lib/query.cpp 2006-11-23 00:16:04.000000000 +0100
@@ -220,7 +220,7 @@
}
// Finished parsing parameter; save it.
- parse_elems_.push_back(SQLParseElement(str,
option, char(n)));
+ parse_elems_.push_back(SQLParseElement(str,
option, n));
str = "";
name = "";
}
@@ -304,7 +304,7 @@
{
sbuffer_.str("");
- char num;
+ short int num;
SQLString* ss;
SQLQueryParms* c;
--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:
http://lists.mysql.com/plusplus?unsub=gcdmc-plusplus@xxxxxxxxxxx
|
|