null+****@clear*****
null+****@clear*****
2012年 2月 28日 (火) 09:53:48 JST
Kouhei Sutou 2012-02-28 09:53:48 +0900 (Tue, 28 Feb 2012)
New Revision: 1737fdd354b70abb1968629ffafe1cade248adba
Log:
[storage] suppress warnings with gcc -O2.
fixes #1295
Reported by Kazuhiko Shiozaki. Thanks!!!
Modified files:
ha_mroonga.cc
Modified: ha_mroonga.cc (+16 -6)
===================================================================
--- ha_mroonga.cc 2012-02-27 23:07:59 +0900 (27c619a)
+++ ha_mroonga.cc 2012-02-28 09:53:48 +0900 (ceb1eee)
@@ -8606,17 +8606,18 @@ int ha_mroonga::storage_encode_multiple_column_key(KEY *key_info,
}
enum {
+ TYPE_UNKNOWN,
TYPE_LONG_LONG_NUMBER,
TYPE_NUMBER,
TYPE_FLOAT,
TYPE_DOUBLE,
TYPE_BYTE_SEQUENCE
- } data_type;
- uint32 data_size;
- int int_value;
- long long int long_long_value;
- float float_value;
- double double_value;
+ } data_type = TYPE_UNKNOWN;
+ uint32 data_size = 0;
+ int int_value = 0;
+ long long int long_long_value = 0;
+ float float_value = 0.0;
+ double double_value = 0.0;
switch (field->real_type()) {
case MYSQL_TYPE_DECIMAL:
data_type = TYPE_BYTE_SEQUENCE;
@@ -8739,6 +8740,11 @@ int ha_mroonga::storage_encode_multiple_column_key(KEY *key_info,
}
switch (data_type) {
+ case TYPE_UNKNOWN:
+ // TODO: This will not be happen. This is just for
+ // suppressing warnings by gcc -O2. :<
+ error = HA_ERR_UNSUPPORTED;
+ break;
case TYPE_LONG_LONG_NUMBER:
if (decode)
*((uint8_t *)(&long_long_value)) ^= 0x80;
@@ -8800,6 +8806,10 @@ int ha_mroonga::storage_encode_multiple_column_key(KEY *key_info,
break;
}
+ if (error) {
+ break;
+ }
+
current_key += data_size;
current_buffer += data_size;
*encoded_length += data_size;