summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYuichi Nishiwaki <[email protected]>2013-08-04 00:40:41 -0700
committerYuichi Nishiwaki <[email protected]>2013-08-04 00:40:41 -0700
commit8854ecb629726e24aef03183b36fe3b1314dfb91 (patch)
treea98fa3f7ca68170857fc81d3ed83cdb02953678d /include
parent07fefb585e2d2265c63f5ce83b83ab38f06a8e49 (diff)
downloadmruby-8854ecb629726e24aef03183b36fe3b1314dfb91.tar.gz
mruby-8854ecb629726e24aef03183b36fe3b1314dfb91.zip
revert one of the API changes: MRB_SET_VALUE_P no longer used
Diffstat (limited to 'include')
-rw-r--r--include/mruby/value.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/include/mruby/value.h b/include/mruby/value.h
index e98d3ce14..8971aca41 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -152,12 +152,14 @@ typedef struct mrb_value {
#define MRB_SET_VALUE(o, tt, attr, v) do {\
(o).value.ttt = mrb_mktt(tt);\
- (o).attr = v;\
-} while (0)
-#define MRB_SET_VALUE_P(o, tt, v) do {\
- (o).value.ttt = mrb_mktt(tt);\
- (o).value.i = 0;\
- (o).value.p = (void*)((uint64_t)(o).value.p | (((uint64_t)(v))>>2));\
+ switch (tt) {\
+ case MRB_TT_FALSE:\
+ case MRB_TT_TRUE:\
+ case MRB_TT_UNDEF:\
+ case MRB_TT_FIXNUM:\
+ case MRB_TT_SYMBOL: (o).attr = (v); break;\
+ default: (o).value.i = 0; (o).value.p = (void*)((uint64_t)(o).value.p | (((uint64_t)(v))>>2)); break;\
+ }\
} while (0)
static inline mrb_value
@@ -252,7 +254,6 @@ typedef union mrb_value {
default: if ((o).value.bp) (o).value.bp->tt = ttt; break;\
}\
} while (0)
-#define MRB_SET_VALUE_P(o, ttt, v) MRB_SET_VALUE(o, ttt, value.p, v)
extern mrb_value
mrb_float_value(struct mrb_state *mrb, mrb_float f);
@@ -279,7 +280,6 @@ typedef struct mrb_value {
(o).tt = ttt;\
(o).attr = v;\
} while (0)
-#define MRB_SET_VALUE_P(o, ttt, v) MRB_SET_VALUE(o, ttt, value.p, v)
static inline mrb_value
mrb_float_value(struct mrb_state *mrb, mrb_float f)
@@ -426,7 +426,7 @@ mrb_obj_value(void *p)
mrb_value v;
struct RBasic *b = (struct RBasic*)p;
- MRB_SET_VALUE_P(v, b->tt, p);
+ MRB_SET_VALUE(v, b->tt, value.p, p);
return v;
}
@@ -439,7 +439,7 @@ mrb_voidp_value(struct mrb_state *mrb, void *p)
{
mrb_value v;
- MRB_SET_VALUE_P(v, MRB_TT_VOIDP, p);
+ MRB_SET_VALUE(v, MRB_TT_VOIDP, value.p, p);
return v;
}
#endif