Kouhei Sutou
null+****@clear*****
Sun Oct 25 23:39:32 JST 2015
Kouhei Sutou 2015-10-25 23:39:32 +0900 (Sun, 25 Oct 2015) New Revision: 16e74cc808ccfbb95b4e5a7d5e6399d5e025fcfc https://github.com/groonga/groonga/commit/16e74cc808ccfbb95b4e5a7d5e6399d5e025fcfc Message: Add NULL check Modified files: include/groonga/obj.h Modified: include/groonga/obj.h (+27 -23) =================================================================== --- include/groonga/obj.h 2015-10-25 23:37:35 +0900 (f22ba60) +++ include/groonga/obj.h 2015-10-25 23:39:32 +0900 (9ed8f44) @@ -25,19 +25,20 @@ extern "C" { #define GRN_OBJ_IS_TRUE(ctx, obj, result) do { \ grn_obj *obj_ = (obj); \ - switch (obj_->header.type) { \ - case GRN_BULK : \ - switch (obj_->header.domain) { \ - case GRN_DB_BOOL : \ - result = GRN_BOOL_VALUE(obj_); \ - break; \ - case GRN_DB_INT32 : \ - result = GRN_INT32_VALUE(obj_) != 0; \ - break; \ - case GRN_DB_UINT32 : \ - result = GRN_UINT32_VALUE(obj_) != 0; \ - break; \ - case GRN_DB_FLOAT : \ + if (obj_) { \ + switch (obj_->header.type) { \ + case GRN_BULK : \ + switch (obj_->header.domain) { \ + case GRN_DB_BOOL : \ + result = GRN_BOOL_VALUE(obj_); \ + break; \ + case GRN_DB_INT32 : \ + result = GRN_INT32_VALUE(obj_) != 0; \ + break; \ + case GRN_DB_UINT32 : \ + result = GRN_UINT32_VALUE(obj_) != 0; \ + break; \ + case GRN_DB_FLOAT : \ { \ double float_value; \ float_value = GRN_FLOAT_VALUE(obj_); \ @@ -45,22 +46,25 @@ extern "C" { DBL_EPSILON < float_value); \ } \ break; \ - case GRN_DB_SHORT_TEXT : \ - case GRN_DB_TEXT : \ - case GRN_DB_LONG_TEXT : \ - result = GRN_TEXT_LEN(obj_) != 0; \ + case GRN_DB_SHORT_TEXT : \ + case GRN_DB_TEXT : \ + case GRN_DB_LONG_TEXT : \ + result = GRN_TEXT_LEN(obj_) != 0; \ + break; \ + default : \ + result = GRN_FALSE; \ + break; \ + } \ + break; \ + case GRN_VECTOR : \ + result = GRN_TRUE; \ break; \ default : \ result = GRN_FALSE; \ break; \ } \ - break; \ - case GRN_VECTOR : \ - result = GRN_TRUE; \ - break; \ - default : \ + } else { \ result = GRN_FALSE; \ - break; \ } \ } while (0) -------------- next part -------------- HTML����������������������������...Download