Navigation Menu

Skip to content

Commit

Permalink
Add NULL check
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Oct 25, 2015
1 parent 61864e7 commit 16e74cc
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions include/groonga/obj.h
Expand Up @@ -25,42 +25,46 @@ 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_); \
result = (float_value < -DBL_EPSILON || \
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)

Expand Down

0 comments on commit 16e74cc

Please sign in to comment.