wanabe
null+****@clear*****
Sat Oct 12 00:37:05 JST 2013
wanabe 2013-10-12 00:37:05 +0900 (Sat, 12 Oct 2013) New Revision: 016388660322244e0edac0a1bb1d4e48e060ee0e https://github.com/groonga/groonga/commit/016388660322244e0edac0a1bb1d4e48e060ee0e Merged 83b4429: Merge pull request #118 from wanabe/mruby-accessor2 Message: mruby: Move grn_accessor related codes in a new file Copied files: lib/mrb/mrb_accessor.c (from lib/mrb/mrb_obj.c) lib/mrb/mrb_accessor.h (from lib/mrb/mrb_obj.h) Modified files: lib/ctx_impl_mrb.c lib/mrb/mrb_expr.c lib/mrb/mrb_obj.c lib/mrb/mrb_obj.h lib/mrb/sources.am Modified: lib/ctx_impl_mrb.c (+2 -0) =================================================================== --- lib/ctx_impl_mrb.c 2013-10-12 00:02:08 +0900 (a18a94c) +++ lib/ctx_impl_mrb.c 2013-10-12 00:37:05 +0900 (11ada19) @@ -21,6 +21,7 @@ #include "mrb/mrb_obj.h" #include "mrb/mrb_expr.h" +#include "mrb/mrb_accessor.h" #ifdef GRN_WITH_MRUBY static void @@ -33,6 +34,7 @@ grn_ctx_impl_mrb_init_bindings(grn_ctx *ctx) grn_mrb_obj_init(ctx); grn_mrb_expr_init(ctx); + grn_mrb_accessor_init(ctx); } void Copied: lib/mrb/mrb_accessor.c (+2 -5) 93% =================================================================== --- lib/mrb/mrb_obj.c 2013-10-12 00:02:08 +0900 (dca1ca5) +++ lib/mrb/mrb_accessor.c 2013-10-12 00:37:05 +0900 (f1e99fa) @@ -25,7 +25,7 @@ #include <mruby/data.h> #include "../db.h" -#include "mrb_obj.h" +#include "mrb_accessor.h" static struct mrb_data_type mrb_grn_accessor_type = { "Groonga::Accessor", @@ -68,15 +68,12 @@ mrb_grn_accessor_next(mrb_state *mrb, mrb_value self) } void -grn_mrb_obj_init(grn_ctx *ctx) +grn_mrb_accessor_init(grn_ctx *ctx) { mrb_state *mrb = ctx->impl->mrb.state; struct RClass *module = ctx->impl->mrb.module; struct RClass *klass; - klass = mrb_define_class_under(mrb, module, "Object", mrb->object_class); - MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA); - klass = mrb_define_class_under(mrb, module, "Accessor", mrb->object_class); MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA); mrb_define_method(mrb, klass, "initialize", mrb_grn_accessor_initialize, MRB_ARGS_REQ(1)); Copied: lib/mrb/mrb_accessor.h (+4 -4) 87% =================================================================== --- lib/mrb/mrb_obj.h 2013-10-12 00:02:08 +0900 (e5183d4) +++ lib/mrb/mrb_accessor.h 2013-10-12 00:37:05 +0900 (7aefc77) @@ -16,8 +16,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef GRN_MRB_OBJ_H -#define GRN_MRB_OBJ_H +#ifndef GRN_MRB_ACCESSOR_H +#define GRN_MRB_ACCESSOR_H #include "../ctx.h" #include "../db.h" @@ -27,10 +27,10 @@ extern "C" { #endif mrb_value mrb_grn_accessor_new(mrb_state *mrb, grn_accessor *accessor); -void grn_mrb_obj_init(grn_ctx *ctx); +void grn_mrb_accessor_init(grn_ctx *ctx); #ifdef __cplusplus } #endif -#endif /* GRN_MRB_OBJ_H */ +#endif /* GRN_MRB_ACCESSOR_H */ Modified: lib/mrb/mrb_expr.c (+1 -1) =================================================================== --- lib/mrb/mrb_expr.c 2013-10-12 00:02:08 +0900 (99a0a9f) +++ lib/mrb/mrb_expr.c 2013-10-12 00:37:05 +0900 (29350a8) @@ -27,7 +27,7 @@ #include "../expr.h" #include "../util.h" #include "../mrb.h" -#include "mrb_obj.h" +#include "mrb_accessor.h" #include "mrb_expr.h" static struct mrb_data_type mrb_grn_scan_info_type = { Modified: lib/mrb/mrb_obj.c (+0 -48) =================================================================== --- lib/mrb/mrb_obj.c 2013-10-12 00:02:08 +0900 (dca1ca5) +++ lib/mrb/mrb_obj.c 2013-10-12 00:37:05 +0900 (a7f48d6) @@ -21,52 +21,9 @@ #ifdef GRN_WITH_MRUBY #include <mruby.h> #include <mruby/class.h> -#include <mruby/variable.h> -#include <mruby/data.h> -#include "../db.h" #include "mrb_obj.h" -static struct mrb_data_type mrb_grn_accessor_type = { - "Groonga::Accessor", - NULL -}; - -mrb_value -mrb_grn_accessor_new(mrb_state *mrb, grn_accessor *accessor) -{ - grn_ctx *ctx = (grn_ctx *)mrb->ud; - struct RClass *module = ctx->impl->mrb.module; - struct RClass *klass; - mrb_value mrb_accessor_ptr; - - mrb_accessor_ptr = mrb_cptr_value(mrb, accessor); - klass = mrb_class_ptr(mrb_const_get(mrb, mrb_obj_value(module), - mrb_intern(mrb, "Accessor"))); - return mrb_obj_new(mrb, klass, 1, &mrb_accessor_ptr); -} - -static mrb_value -mrb_grn_accessor_initialize(mrb_state *mrb, mrb_value self) -{ - mrb_value mrb_accessor_ptr; - - mrb_get_args(mrb, "o", &mrb_accessor_ptr); - DATA_TYPE(self) = &mrb_grn_accessor_type; - DATA_PTR(self) = mrb_cptr(mrb_accessor_ptr); - return self; -} - -static mrb_value -mrb_grn_accessor_next(mrb_state *mrb, mrb_value self) -{ - grn_accessor *accessor; - - accessor = DATA_PTR(self); - if (!accessor->next) { return mrb_nil_value(); } - return mrb_cptr_value(mrb, accessor->next); -} - void grn_mrb_obj_init(grn_ctx *ctx) { @@ -76,10 +33,5 @@ grn_mrb_obj_init(grn_ctx *ctx) klass = mrb_define_class_under(mrb, module, "Object", mrb->object_class); MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA); - - klass = mrb_define_class_under(mrb, module, "Accessor", mrb->object_class); - MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA); - mrb_define_method(mrb, klass, "initialize", mrb_grn_accessor_initialize, MRB_ARGS_REQ(1)); - mrb_define_method(mrb, klass, "next", mrb_grn_accessor_next, MRB_ARGS_NONE()); } #endif Modified: lib/mrb/mrb_obj.h (+0 -2) =================================================================== --- lib/mrb/mrb_obj.h 2013-10-12 00:02:08 +0900 (e5183d4) +++ lib/mrb/mrb_obj.h 2013-10-12 00:37:05 +0900 (31d5324) @@ -20,13 +20,11 @@ #define GRN_MRB_OBJ_H #include "../ctx.h" -#include "../db.h" #ifdef __cplusplus extern "C" { #endif -mrb_value mrb_grn_accessor_new(mrb_state *mrb, grn_accessor *accessor); void grn_mrb_obj_init(grn_ctx *ctx); #ifdef __cplusplus Modified: lib/mrb/sources.am (+2 -0) =================================================================== --- lib/mrb/sources.am 2013-10-12 00:02:08 +0900 (daeeefb) +++ lib/mrb/sources.am 2013-10-12 00:37:05 +0900 (f000430) @@ -1,4 +1,6 @@ libgrnmrb_la_SOURCES = \ + mrb_accessor.c \ + mrb_accessor.h \ mrb_expr.c \ mrb_expr.h \ mrb_obj.c \ -------------- next part -------------- HTML����������������������������...Download