null+****@clear*****
null+****@clear*****
2012年 3月 27日 (火) 12:18:55 JST
Susumu Yata 2012-03-27 12:18:55 +0900 (Tue, 27 Mar 2012)
New Revision: 074a10ed0de676741d6467a970cfe07af0846708
Log:
Use the do/while trick and fix indentation.
Modified files:
lib/com.h
lib/ctx.h
lib/db.h
lib/hash.h
lib/ii.h
lib/io.h
lib/store.h
lib/str.h
lib/token.h
Modified: lib/com.h (+3 -3)
===================================================================
--- lib/com.h 2012-03-27 12:08:36 +0900 (1c8cd7c)
+++ lib/com.h 2012-03-27 12:18:55 +0900 (193ee17)
@@ -1,5 +1,5 @@
/* -*- c-basic-offset: 2 -*- */
-/* Copyright(C) 2009-2011 Brazil
+/* Copyright(C) 2009-2012 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -59,13 +59,13 @@ struct _grn_com_queue {
grn_critical_section cs;
};
-#define GRN_COM_QUEUE_INIT(q) {\
+#define GRN_COM_QUEUE_INIT(q) do {\
(q)->next = NULL;\
(q)->tail = &(q)->next;\
(q)->first = 0;\
(q)->last = 0;\
CRITICAL_SECTION_INIT((q)->cs);\
-}
+} while (0)
#define GRN_COM_QUEUE_EMPTYP(q) (((q)->first == (q)->last) && !(q)->next)
Modified: lib/ctx.h (+35 -36)
===================================================================
--- lib/ctx.h 2012-03-27 12:08:36 +0900 (f01a617)
+++ lib/ctx.h 2012-03-27 12:18:55 +0900 (1cebf75)
@@ -45,8 +45,7 @@ extern "C" {
/**** api in/out ****/
-#define GRN_API_ENTER \
-{\
+#define GRN_API_ENTER do {\
if ((ctx)->seqno & 1) {\
(ctx)->subno++;\
} else {\
@@ -55,11 +54,10 @@ extern "C" {
(ctx)->seqno++;\
}\
GRN_TEST_YIELD();\
-}
+} while (0)
/* CAUTION!! : pass only variables or constants as r */
-#define GRN_API_RETURN(r) \
-{\
+#define GRN_API_RETURN(r) do {\
if (ctx->subno) {\
ctx->subno--;\
} else {\
@@ -67,7 +65,7 @@ extern "C" {
}\
GRN_TEST_YIELD();\
return r;\
-}
+} while (0)
/**** error handling ****/
@@ -100,7 +98,7 @@ extern "C" {
GRN_API void grn_ctx_impl_err(grn_ctx *ctx);
#ifdef HAVE_BACKTRACE
-#define LOGTRACE(ctx,lvl) {\
+#define LOGTRACE(ctx,lvl) do {\
int i;\
char **p;\
BACKTRACE(ctx);\
@@ -109,7 +107,7 @@ GRN_API void grn_ctx_impl_err(grn_ctx *ctx);
GRN_LOG((ctx), lvl, "%s", p[i]);\
}\
free(p);\
-}
+} while (0)
#else /* HAVE_BACKTRACE */
#define LOGTRACE(ctx,msg)
#endif /* HAVE_BACKTRACE */
@@ -128,7 +126,8 @@ GRN_API void grn_ctx_impl_err(grn_ctx *ctx);
if (lvl <= GRN_LOG_ERROR) { LOGTRACE(ctx, lvl); }\
} while (0)
-#define ERRP(ctx,lvl) (((ctx) && ((grn_ctx *)(ctx))->errlvl <= (lvl)) || (grn_gctx.errlvl <= (lvl)))
+#define ERRP(ctx,lvl) \
+ (((ctx) && ((grn_ctx *)(ctx))->errlvl <= (lvl)) || (grn_gctx.errlvl <= (lvl)))
#define QLERR(...) do {\
ERRSET(ctx, GRN_WARN, GRN_INVALID_ARGUMENT, __VA_ARGS__);\
@@ -148,7 +147,7 @@ GRN_API void grn_ctx_impl_err(grn_ctx *ctx);
#define ALERT(...) ERRSET(ctx, GRN_ALERT, GRN_SUCCESS, __VA_ARGS__)
#ifdef WIN32
-#define SERR(str) {\
+#define SERR(str) do {\
grn_rc rc;\
const char *m;\
int e = WSAGetLastError();\
@@ -227,9 +226,9 @@ GRN_API void grn_ctx_impl_err(grn_ctx *ctx);
break;\
}\
ERR(rc, "syscall error '%s' (%s)", str, m);\
-}
+} while (0)
#else /* WIN32 */
-#define SERR(str) {\
+#define SERR(str) do {\
grn_rc rc;\
switch (errno) {\
case ELOOP : rc = GRN_TOO_MANY_SYMBOLIC_LINKS; break;\
@@ -280,23 +279,23 @@ GRN_API void grn_ctx_impl_err(grn_ctx *ctx);
default : rc = GRN_UNKNOWN_ERROR; break;\
}\
ERR(rc, "syscall error '%s' (%s)", str, strerror(errno));\
-}
+} while (0)
#endif /* WIN32 */
#define GERR(rc,...) ERRSET(&grn_gctx, GRN_ERROR, (rc), __VA_ARGS__)
-#define GMERR(...) ERRSET(&grn_gctx, GRN_ALERT, GRN_NO_MEMORY_AVAILABLE, __VA_ARGS__)
-
-#define GRN_MALLOC(s) grn_malloc(ctx,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_CALLOC(s) grn_calloc(ctx,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_REALLOC(p,s) grn_realloc(ctx,p,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_STRDUP(s) grn_strdup(ctx,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_GMALLOC(s) grn_malloc(&grn_gctx,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_GCALLOC(s) grn_calloc(&grn_gctx,s,__FILE__,__LINE__,__FUNCTION__)
+#define GMERR(...) ERRSET(&grn_gctx, GRN_ALERT, GRN_NO_MEMORY_AVAILABLE, __VA_ARGS__)
+
+#define GRN_MALLOC(s) grn_malloc(ctx,s,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_CALLOC(s) grn_calloc(ctx,s,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_REALLOC(p,s) grn_realloc(ctx,p,s,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_STRDUP(s) grn_strdup(ctx,s,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_GMALLOC(s) grn_malloc(&grn_gctx,s,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_GCALLOC(s) grn_calloc(&grn_gctx,s,__FILE__,__LINE__,__FUNCTION__)
#define GRN_GREALLOC(p,s) grn_realloc(&grn_gctx,p,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_GSTRDUP(s) grn_strdup(&grn_gctx,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_FREE(p) grn_free(ctx,p,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_MALLOCN(t,n) ((t *)(GRN_MALLOC(sizeof(t) * (n))))
-#define GRN_GFREE(p) grn_free(&grn_gctx,p,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_GSTRDUP(s) grn_strdup(&grn_gctx,s,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_FREE(p) grn_free(ctx,p,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_MALLOCN(t,n) ((t *)(GRN_MALLOC(sizeof(t) * (n))))
+#define GRN_GFREE(p) grn_free(&grn_gctx,p,__FILE__,__LINE__,__FUNCTION__)
#define GRN_GMALLOCN(t,n) ((t *)(GRN_GMALLOC(sizeof(t) * (n))))
#ifdef DEBUG
@@ -305,10 +304,10 @@ GRN_API void grn_ctx_impl_err(grn_ctx *ctx);
#define GRN_ASSERT(s)
#endif
-#define GRN_CTX_ALLOC(ctx,s) grn_ctx_calloc(ctx,s,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_CTX_FREE(ctx,p) grn_ctx_free(ctx,p,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_CTX_ALLOC(ctx,s) grn_ctx_calloc(ctx,s,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_CTX_FREE(ctx,p) grn_ctx_free(ctx,p,__FILE__,__LINE__,__FUNCTION__)
#define GRN_CTX_ALLOC_L(ctx,s) grn_ctx_alloc_lifo(ctx,s,f,__FILE__,__LINE__,__FUNCTION__)
-#define GRN_CTX_FREE_L(ctx,p) grn_ctx_free_lifo(ctx,p,__FILE__,__LINE__,__FUNCTION__)
+#define GRN_CTX_FREE_L(ctx,p) grn_ctx_free_lifo(ctx,p,__FILE__,__LINE__,__FUNCTION__)
void *grn_ctx_alloc(grn_ctx *ctx, size_t size, int flags,
const char* file, int line, const char *func);
@@ -350,11 +349,11 @@ void *grn_calloc(grn_ctx *ctx, size_t size, const char* file, int line, const ch
void *grn_realloc(grn_ctx *ctx, void *ptr, size_t size, const char* file, int line, const char *func);
char *grn_strdup(grn_ctx *ctx, const char *s, const char* file, int line, const char *func);
#else
-# define grn_malloc grn_malloc_default
-# define grn_calloc grn_calloc_default
+# define grn_malloc grn_malloc_default
+# define grn_calloc grn_calloc_default
# define grn_realloc grn_realloc_default
-# define grn_strdup grn_strdup_default
-# define grn_free grn_free_default
+# define grn_strdup grn_strdup_default
+# define grn_free grn_free_default
#endif
GRN_API void *grn_malloc_default(grn_ctx *ctx, size_t size, const char* file, int line, const char *func);
@@ -405,14 +404,14 @@ extern grn_timeval grn_starttime;
#define GRN_TIME_NSEC_TO_USEC(nsec) ((nsec) / GRN_TIME_NSEC_PER_USEC)
#define GRN_TIME_USEC_TO_NSEC(usec) ((usec) * GRN_TIME_NSEC_PER_USEC)
-#define LAP(prefix,format,...) {\
+#define LAP(prefix,format,...) do {\
uint64_t et;\
grn_timeval tv;\
grn_timeval_now(ctx, &tv);\
et = (uint64_t)(tv.tv_sec - ctx->impl->tv.tv_sec) * GRN_TIME_NSEC_PER_SEC\
+ (tv.tv_nsec - ctx->impl->tv.tv_nsec);\
GRN_LOG(ctx, GRN_LOG_NONE, "%08x|" prefix "%015llu " format, (intptr_t)ctx, et, __VA_ARGS__);\
-}
+} while (0)
GRN_API grn_rc grn_timeval_now(grn_ctx *ctx, grn_timeval *tv);
GRN_API grn_rc grn_timeval2str(grn_ctx *ctx, grn_timeval *tv, char *buf);
@@ -459,7 +458,7 @@ typedef struct {
// grn_obj_flags flags;
} grn_db_obj;
-#define GRN_DB_OBJ_SET_TYPE(db_obj,obj_type) {\
+#define GRN_DB_OBJ_SET_TYPE(db_obj,obj_type) do {\
(db_obj)->obj.header.type = (obj_type);\
(db_obj)->obj.header.impl_flags = 0;\
(db_obj)->obj.header.flags = 0;\
@@ -473,7 +472,7 @@ typedef struct {
(db_obj)->obj.hooks[4] = NULL;\
(db_obj)->obj.source = NULL;\
(db_obj)->obj.source_size = 0;\
-}
+} while (0)
/**** cache ****/
Modified: lib/db.h (+8 -5)
===================================================================
--- lib/db.h 2012-03-27 12:08:36 +0900 (845c22f)
+++ lib/db.h 2012-03-27 12:18:55 +0900 (7ac0dcd)
@@ -351,7 +351,10 @@ grn_obj *grn_column_open(grn_ctx *ctx, grn_obj *table,
grn_rc grn_obj_path_rename(grn_ctx *ctx, const char *old_path, const char *new_path);
grn_rc grn_db_check_name(grn_ctx *ctx, const char *name, unsigned int name_size);
-#define GRN_DB_CHECK_NAME_ERR(error_context, name, name_size) ERR(GRN_INVALID_ARGUMENT, "%s name can't start with '%c' and contains only 0-9, A-Z, a-z, #, @, - or _: <%.*s>", error_context, GRN_DB_PSEUDO_COLUMN_PREFIX, name_size, name)
+#define GRN_DB_CHECK_NAME_ERR(error_context, name, name_size) \
+ ERR(GRN_INVALID_ARGUMENT,\
+ "%s name can't start with '%c' and contains only 0-9, A-Z, a-z, #, @, - or _: <%.*s>",\
+ error_context, GRN_DB_PSEUDO_COLUMN_PREFIX, name_size, name)
#define GRN_DB_P(s) ((s) && ((grn_db *)s)->obj.header.type == GRN_DB)
#define GRN_DB_PERSISTENT_P(s) (((grn_db *)s)->specs)
@@ -364,7 +367,7 @@ grn_rc grn_db_obj_init(grn_ctx *ctx, grn_obj *db, grn_id id, grn_db_obj *obj);
((obj) && (((grn_obj *)(obj))->header.type == GRN_ACCESSOR ||\
((grn_obj *)(obj))->header.type == GRN_ACCESSOR_VIEW))
-#define GRN_TRUEP(ctx, v, result) {\
+#define GRN_TRUEP(ctx, v, result) do {\
switch (v->header.type) { \
case GRN_BULK : \
switch (v->header.domain) { \
@@ -399,20 +402,20 @@ grn_rc grn_db_obj_init(grn_ctx *ctx, grn_obj *db, grn_id id, grn_db_obj *obj);
result = GRN_FALSE; \
break; \
} \
-}
+} while (0)
grn_id grn_obj_register(grn_ctx *ctx, grn_obj *db, const char *name, unsigned int name_size);
int grn_obj_is_persistent(grn_ctx *ctx, grn_obj *obj);
void grn_obj_spec_save(grn_ctx *ctx, grn_db_obj *obj);
-#define GRN_UINT32_POP(obj,value) {\
+#define GRN_UINT32_POP(obj,value) do {\
if (GRN_BULK_VSIZE(obj) >= sizeof(uint32_t)) {\
GRN_BULK_INCR_LEN((obj), -(sizeof(uint32_t)));\
value = *(uint32_t *)(GRN_BULK_CURR(obj));\
} else {\
value = 0;\
}\
-}
+} while (0)
void grn_expr_pack(grn_ctx *ctx, grn_obj *buf, grn_obj *expr);
GRN_API grn_rc grn_expr_inspect(grn_ctx *ctx, grn_obj *buf, grn_obj *expr);
Modified: lib/hash.h (+14 -14)
===================================================================
--- lib/hash.h 2012-03-27 12:08:36 +0900 (3ee04b6)
+++ lib/hash.h 2012-03-27 12:18:55 +0900 (9fc8466)
@@ -1,5 +1,5 @@
/* -*- c-basic-offset: 2 -*- */
-/* Copyright(C) 2009 Brazil
+/* Copyright(C) 2009-2012 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -35,10 +35,10 @@ extern "C" {
#define GRN_TINY_ARRAY_THREADSAFE (1L<<1)
#define GRN_TINY_ARRAY_USE_MALLOC (1L<<2)
-#define GRN_TINY_ARRAY_W 0
+#define GRN_TINY_ARRAY_W 0
#define GRN_TINY_ARRAY_R(i) (1<<((i)<<GRN_TINY_ARRAY_W))
-#define GRN_TINY_ARRAY_S (GRN_TINY_ARRAY_R(1)-1)
-#define GRN_TINY_ARRAY_N (32>>GRN_TINY_ARRAY_W)
+#define GRN_TINY_ARRAY_S (GRN_TINY_ARRAY_R(1)-1)
+#define GRN_TINY_ARRAY_N (32>>GRN_TINY_ARRAY_W)
typedef struct _grn_tiny_array grn_tiny_array;
@@ -100,29 +100,29 @@ struct _grn_tiny_array {
#define GRN_TINY_ARRAY_NEXT(a,e) GRN_TINY_ARRAY_AT((a), (a)->max + 1, e)
-#define GRN_TINY_ARRAY_BIT_AT(array,offset,res) {\
+#define GRN_TINY_ARRAY_BIT_AT(array,offset,res) do {\
uint8_t *ptr_;\
GRN_TINY_ARRAY_AT((array), ((offset) >> 3) + 1, ptr_);\
res = ptr_ ? ((*ptr_ >> ((offset) & 7)) & 1) : 0;\
-}
+} while (0)
-#define GRN_TINY_ARRAY_BIT_ON(array,offset) {\
+#define GRN_TINY_ARRAY_BIT_ON(array,offset) do {\
uint8_t *ptr_;\
GRN_TINY_ARRAY_AT((array), ((offset) >> 3) + 1, ptr_);\
if (ptr_) { *ptr_ |= (1 << ((offset) & 7)); }\
-}
+} while (0)
-#define GRN_TINY_ARRAY_BIT_OFF(array,offset) {\
+#define GRN_TINY_ARRAY_BIT_OFF(array,offset) do {\
uint8_t *ptr_;\
GRN_TINY_ARRAY_AT((array), ((offset) >> 3) + 1, ptr_);\
if (ptr_) { *ptr_ &= ~(1 << ((offset) & 7)); }\
-}
+} while (0)
-#define GRN_TINY_ARRAY_BIT_FLIP(array,offset) {\
+#define GRN_TINY_ARRAY_BIT_FLIP(array,offset) do {\
uint8_t *ptr_;\
GRN_TINY_ARRAY_AT((array), ((offset) >> 3) + 1, ptr_);\
if (ptr_) { *ptr_ ^= (1 << ((offset) & 7)); }\
-}
+} while (0)
void grn_tiny_array_init(grn_ctx *ctx, grn_tiny_array *a, uint16_t element_size, uint16_t flags);
void grn_tiny_array_fin(grn_tiny_array *a);
@@ -131,7 +131,7 @@ grn_id grn_tiny_array_id(grn_tiny_array *a, void *p);
/**** grn_array ****/
-#define GRN_ARRAY_TINY (0x01<<6)
+#define GRN_ARRAY_TINY (0x01<<6)
struct _grn_array {
grn_db_obj obj;
@@ -171,7 +171,7 @@ grn_rc grn_array_copy_sort_key(grn_ctx *ctx, grn_array *array,
/**** grn_hash ****/
-#define GRN_HASH_TINY (0x01<<6)
+#define GRN_HASH_TINY (0x01<<6)
#define GRN_HASH_MAX_KEY_SIZE GRN_TABLE_MAX_KEY_SIZE
struct _grn_hash {
Modified: lib/ii.h (+7 -7)
===================================================================
--- lib/ii.h 2012-03-27 12:08:36 +0900 (bc2165b)
+++ lib/ii.h 2012-03-27 12:18:55 +0900 (877200f)
@@ -1,5 +1,5 @@
/* -*- c-basic-offset: 2 -*- */
-/* Copyright(C) 2009 Brazil
+/* Copyright(C) 2009-2012 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -51,12 +51,12 @@ struct _grn_ii {
};
#define GRN_II_BGQSIZE 16
-#define GRN_II_MAX_LSEG 0x10000
-#define GRN_II_W_TOTAL_CHUNK 40
-#define GRN_II_W_CHUNK 22
-#define GRN_II_W_LEAST_CHUNK (GRN_II_W_TOTAL_CHUNK - 32)
-#define GRN_II_MAX_CHUNK (1 << (GRN_II_W_TOTAL_CHUNK - GRN_II_W_CHUNK))
-#define GRN_II_N_CHUNK_VARIATION (GRN_II_W_CHUNK - GRN_II_W_LEAST_CHUNK)
+#define GRN_II_MAX_LSEG 0x10000
+#define GRN_II_W_TOTAL_CHUNK 40
+#define GRN_II_W_CHUNK 22
+#define GRN_II_W_LEAST_CHUNK (GRN_II_W_TOTAL_CHUNK - 32)
+#define GRN_II_MAX_CHUNK (1 << (GRN_II_W_TOTAL_CHUNK - GRN_II_W_CHUNK))
+#define GRN_II_N_CHUNK_VARIATION (GRN_II_W_CHUNK - GRN_II_W_LEAST_CHUNK)
struct grn_ii_header {
uint64_t total_chunk_size;
Modified: lib/io.h (+28 -32)
===================================================================
--- lib/io.h 2012-03-27 12:08:36 +0900 (38bc749)
+++ lib/io.h 2012-03-27 12:18:55 +0900 (348bc9b)
@@ -1,5 +1,5 @@
/* -*- c-basic-offset: 2 -*- */
-/* Copyright(C) 2009 Brazil
+/* Copyright(C) 2009-2012 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -27,16 +27,16 @@ extern "C" {
#ifdef WIN32
#ifdef WIN32_FMO_EACH
-#define GRN_IO_FILE_SIZE 1073741824UL
+#define GRN_IO_FILE_SIZE 1073741824UL
#else /* FMO_EACH */
-#define GRN_IO_FILE_SIZE 134217728L
+#define GRN_IO_FILE_SIZE 134217728L
#endif /* FMO_EACH */
-#define GRN_IO_COPY grn_io_rdonly
-#define GRN_IO_UPDATE grn_io_wronly
+#define GRN_IO_COPY grn_io_rdonly
+#define GRN_IO_UPDATE grn_io_wronly
#else /* WIN32 */
-#define GRN_IO_FILE_SIZE 1073741824UL
-#define GRN_IO_COPY grn_io_rdwr
-#define GRN_IO_UPDATE grn_io_rdwr
+#define GRN_IO_FILE_SIZE 1073741824UL
+#define GRN_IO_COPY grn_io_rdwr
+#define GRN_IO_UPDATE grn_io_rdwr
#endif /* WIN32 */
typedef enum {
@@ -177,7 +177,7 @@ void grn_io_seg_map_(grn_ctx *ctx, grn_io *io, uint32_t segno, grn_io_mapinfo *i
* segno must be in valid range;
* addr must be set NULL;
*/
-#define GRN_IO_SEG_REF(io,segno,addr) {\
+#define GRN_IO_SEG_REF(io,segno,addr) do {\
grn_io_mapinfo *info = &(io)->maps[segno];\
uint32_t nref, retry, *pnref = &info->nref;\
if (io->flags & GRN_IO_EXPIRE_SEGMENT) {\
@@ -268,15 +268,15 @@ void grn_io_seg_map_(grn_ctx *ctx, grn_io *io, uint32_t segno, grn_io_mapinfo *i
info->count = grn_gtick;\
}\
addr = info->map;\
-}
+} while (0)
-#define GRN_IO_SEG_UNREF(io,segno) {\
+#define GRN_IO_SEG_UNREF(io,segno) do {\
if (GRN_IO_EXPIRE_SEGMENT ==\
(io->flags & (GRN_IO_EXPIRE_GTICK|GRN_IO_EXPIRE_SEGMENT))) {\
uint32_t nref, *pnref = &(io)->maps[segno].nref;\
GRN_ATOMIC_ADD_EX(pnref, -1, nref);\
}\
-}
+} while (0)
uint32_t grn_io_base_seg(grn_io *io);
const char *grn_io_path(grn_io *io);
@@ -323,33 +323,33 @@ uint32_t grn_io_is_locked(grn_io *io);
(((offset) & ainfo->elm_mask_in_a_segment) * ainfo->element_size));\
} while (0)
-#define GRN_IO_ARRAY_BIT_AT(io,array,offset,res) {\
+#define GRN_IO_ARRAY_BIT_AT(io,array,offset,res) do {\
uint8_t *ptr_;\
int flags_ = 0;\
GRN_IO_ARRAY_AT((io), (array), ((offset) >> 3) + 1, &flags_, ptr_);\
res = ptr_ ? ((*ptr_ >> ((offset) & 7)) & 1) : 0;\
-}
+} while (0)
-#define GRN_IO_ARRAY_BIT_ON(io,array,offset) {\
+#define GRN_IO_ARRAY_BIT_ON(io,array,offset) do {\
uint8_t *ptr_;\
int flags_ = GRN_TABLE_ADD;\
GRN_IO_ARRAY_AT((io), (array), ((offset) >> 3) + 1, &flags_, ptr_);\
if (ptr_) { *ptr_ |= (1 << ((offset) & 7)); }\
-}
+} while (0)
-#define GRN_IO_ARRAY_BIT_OFF(io,array,offset) {\
+#define GRN_IO_ARRAY_BIT_OFF(io,array,offset) do {\
uint8_t *ptr_;\
int flags_ = GRN_TABLE_ADD;\
GRN_IO_ARRAY_AT((io), (array), ((offset) >> 3) + 1, &flags_, ptr_);\
if (ptr_) { *ptr_ &= ~(1 << ((offset) & 7)); }\
-}
+} while (0)
-#define GRN_IO_ARRAY_BIT_FLIP(io,array,offset) {\
+#define GRN_IO_ARRAY_BIT_FLIP(io,array,offset) do {\
uint8_t *ptr_;\
int flags_ = GRN_TABLE_ADD;\
GRN_IO_ARRAY_AT((io), (array), ((offset) >> 3) + 1, &flags_, ptr_);\
if (ptr_) { *ptr_ ^= (1 << ((offset) & 7)); }\
-}
+} while (0)
void *grn_io_anon_map(grn_ctx *ctx, grn_io_mapinfo *mi, size_t length);
void grn_io_anon_unmap(grn_ctx *ctx, grn_io_mapinfo *mi, size_t length);
@@ -365,8 +365,7 @@ uint32_t grn_expire(grn_ctx *ctx, int count_thresh, uint32_t limit);
/* encode/decode */
-#define GRN_B_ENC(v,p) \
-{ \
+#define GRN_B_ENC(v,p) do {\
uint8_t *_p = (uint8_t *)p; \
uint32_t _v = v; \
if (_v < 0x8f) { \
@@ -392,13 +391,12 @@ uint32_t grn_expire(grn_ctx *ctx, int count_thresh, uint32_t limit);
_p += sizeof(uint32_t); \
} \
p = _p; \
-}
+} while (0)
#define GRN_B_ENC_SIZE(v) \
((v) < 0x8f ? 1 : ((v) < 0x408f ? 2 : ((v) < 0x20408f ? 3 : ((v) < 0x1020408f ? 4 : 5))))
-#define GRN_B_DEC(v,p) \
-{ \
+#define GRN_B_DEC(v,p) do { \
uint8_t *_p = (uint8_t *)p; \
uint32_t _v = *_p++; \
switch (_v >> 4) { \
@@ -427,10 +425,9 @@ uint32_t grn_expire(grn_ctx *ctx, int count_thresh, uint32_t limit);
} \
v = _v; \
p = _p; \
-}
+} while (0)
-#define GRN_B_SKIP(p) \
-{ \
+#define GRN_B_SKIP(p) do { \
uint8_t *_p = (uint8_t *)p; \
uint32_t _v = *_p++; \
switch (_v >> 4) { \
@@ -454,10 +451,9 @@ uint32_t grn_expire(grn_ctx *ctx, int count_thresh, uint32_t limit);
break; \
} \
p = _p; \
-}
+} while (0)
-#define GRN_B_COPY(p2,p1) \
-{ \
+#define GRN_B_COPY(p2,p1) do { \
uint32_t size = 0, _v = *p1++; \
*p2++ = _v; \
switch (_v >> 4) { \
@@ -479,7 +475,7 @@ uint32_t grn_expire(grn_ctx *ctx, int count_thresh, uint32_t limit);
break; \
} \
while (size--) { *p2++ = *p1++; } \
-}
+} while (0)
#ifdef __cplusplus
}
Modified: lib/store.h (+7 -5)
===================================================================
--- lib/store.h 2012-03-27 12:08:36 +0900 (71da31e)
+++ lib/store.h 2012-03-27 12:18:55 +0900 (1ce0d16)
@@ -1,5 +1,5 @@
/* -*- c-basic-offset: 2 -*- */
-/* Copyright(C) 2009 Brazil
+/* Copyright(C) 2009-2012 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -70,11 +70,13 @@ struct _grn_ra_cache {
int32_t seg;
};
-#define GRN_RA_CACHE_INIT(ra,c) \
-{ (c)->p = NULL; (c)->seg = -1; }
+#define GRN_RA_CACHE_INIT(ra,c) do {\
+ (c)->p = NULL; (c)->seg = -1;\
+} while (0)
-#define GRN_RA_CACHE_FIN(ra,c) \
-{ if ((c)->seg != -1) { GRN_IO_SEG_UNREF((ra)->io, (c)->seg); }}
+#define GRN_RA_CACHE_FIN(ra,c) do {\
+ if ((c)->seg != -1) { GRN_IO_SEG_UNREF((ra)->io, (c)->seg); }\
+} while (0);
void *grn_ra_ref_cache(grn_ctx *ctx, grn_ra *ra, grn_id id, grn_ra_cache *cache);
Modified: lib/str.h (+7 -7)
===================================================================
--- lib/str.h 2012-03-27 12:08:36 +0900 (efbfff5)
+++ lib/str.h 2012-03-27 12:18:55 +0900 (696c4ec)
@@ -1,5 +1,5 @@
/* -*- c-basic-offset: 2 -*- */
-/* Copyright(C) 2009 Brazil
+/* Copyright(C) 2009-2012 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -46,9 +46,9 @@ typedef struct {
GRN_API size_t grn_str_len(grn_ctx *ctx, const char *str, grn_encoding encoding, const char **last);
-#define GRN_STR_BLANK 0x80
+#define GRN_STR_BLANK 0x80
#define GRN_STR_ISBLANK(c) (c & 0x80)
-#define GRN_STR_CTYPE(c) (c & 0x7f)
+#define GRN_STR_CTYPE(c) (c & 0x7f)
GRN_API int grn_isspace(const char *s, grn_encoding encoding);
int8_t grn_atoi8(const char *nptr, const char *end, const char **rest);
@@ -82,21 +82,21 @@ void grn_logger_fin(void);
GRN_API int grn_charlen_(grn_ctx *ctx, const char *str, const char *end, grn_encoding encoding);
GRN_API grn_str *grn_str_open_(grn_ctx *ctx, const char *str, unsigned int str_len, int flags, grn_encoding encoding);
-#define GRN_BULK_INCR_LEN(buf,len) {\
+#define GRN_BULK_INCR_LEN(buf,len) do {\
if (GRN_BULK_OUTP(buf)) {\
(buf)->u.b.curr += (len);\
} else {\
(buf)->header.flags += (len);\
}\
-}
+} while (0)
-#define GRN_BULK_SET_CURR(buf,p) {\
+#define GRN_BULK_SET_CURR(buf,p) do {\
if (GRN_BULK_OUTP(buf)) {\
(buf)->u.b.curr = (char *)(p);\
} else {\
(buf)->header.flags = (char *)(p) - GRN_BULK_HEAD(buf);\
}\
-}
+} while (0)
grn_rc grn_text_ulltoa(grn_ctx *ctx, grn_obj *buf, unsigned long long int i);
Modified: lib/token.h (+1 -1)
===================================================================
--- lib/token.h 2012-03-27 12:08:36 +0900 (95d768b)
+++ lib/token.h 2012-03-27 12:18:55 +0900 (3d0632f)
@@ -69,7 +69,7 @@ enum {
#define GRN_TOKEN_LAST (0x01L<<0)
#define GRN_TOKEN_OVERLAP (0x01L<<1)
#define GRN_TOKEN_UNMATURED (0x01L<<2)
-#define GRN_TOKEN_REACH_END (0x01L<<3)
+#define GRN_TOKEN_REACH_END (0x01L<<3)
extern grn_obj *grn_uvector_tokenizer;