FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

move mrb_value def to mruby/value.h · sogabe/mruby@e74600c · GitHub

Repository navigation

Commit e74600c

Browse files
committed
move mrb_value def to mruby/value.h
1 parent cda1709 commit e74600c

3 files changed

Lines changed: 161 additions & 158 deletions

File tree

‎include/mruby.h‎

Lines changed: 1 addition & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -35,154 +35,7 @@ extern "C" {
3535
#include <stdlib.h>
3636
#include "mrbconf.h"
3737

38-
enum mrb_vtype {
39-
MRB_TT_FALSE = 0, /* 0 */
40-
MRB_TT_FREE, /* 1 */
41-
MRB_TT_TRUE, /* 2 */
42-
MRB_TT_FIXNUM, /* 3 */
43-
MRB_TT_SYMBOL, /* 4 */
44-
MRB_TT_UNDEF, /* 5 */
45-
MRB_TT_FLOAT, /* 6 */
46-
MRB_TT_OBJECT, /* 7 */
47-
MRB_TT_CLASS, /* 8 */
48-
MRB_TT_MODULE, /* 9 */
49-
MRB_TT_ICLASS, /* 10 */
50-
MRB_TT_SCLASS, /* 11 */
51-
MRB_TT_PROC, /* 12 */
52-
MRB_TT_ARRAY, /* 13 */
53-
MRB_TT_HASH, /* 14 */
54-
MRB_TT_STRING, /* 15 */
55-
MRB_TT_RANGE, /* 16 */
56-
MRB_TT_REGEX, /* 17 */
57-
MRB_TT_STRUCT, /* 18 */
58-
MRB_TT_EXCEPTION, /* 19 */
59-
MRB_TT_MATCH, /* 20 */
60-
MRB_TT_FILE, /* 21 */
61-
MRB_TT_ENV, /* 22 */
62-
MRB_TT_DATA, /* 23 */
63-
MRB_TT_MAXDEFINE /* 24 */
64-
};
65-
66-
typedef struct mrb_value {
67-
union {
68-
mrb_float f;
69-
void *p;
70-
mrb_int i;
71-
mrb_sym sym;
72-
} value;
73-
enum mrb_vtype tt:8;
74-
} mrb_value;
75-
76-
#define mrb_type(o) (o).tt
77-
#define mrb_nil_p(o) ((o).tt == MRB_TT_FALSE && !(o).value.i)
78-
#define mrb_test(o) ((o).tt != MRB_TT_FALSE)
79-
#define mrb_fixnum(o) (o).value.i
80-
#define mrb_float(o) (o).value.f
81-
#define mrb_symbol(o) (o).value.sym
82-
#define mrb_object(o) ((struct RBasic *) (o).value.p)
83-
#define FIXNUM_P(o) ((o).tt == MRB_TT_FIXNUM)
84-
#define mrb_undef_p(o) ((o).tt == MRB_TT_UNDEF)
85-
86-
#include "mruby/object.h"
87-
88-
#define IMMEDIATE_P(x) (mrb_type(x) <= MRB_TT_FLOAT)
89-
#define SPECIAL_CONST_P(x) IMMEDIATE_P(x)
90-
#define SYMBOL_P(o) (mrb_type(o) == MRB_TT_SYMBOL)
91-
#define RTEST(o) mrb_test(o)
92-
93-
#define FL_ABLE(x) (!SPECIAL_CONST_P(x))
94-
#define FL_TEST(x,f) (FL_ABLE(x)?(RBASIC(x)->flags&(f)):0)
95-
#define FL_ANY(x,f) FL_TEST(x,f)
96-
#define FL_ALL(x,f) (FL_TEST(x,f) == (f))
97-
#define FL_SET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags |= (f);} while (0)
98-
#define FL_UNSET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags &= ~(f);} while (0)
99-
100-
static inline mrb_int
101-
mrb_special_const_p(mrb_value obj)
102-
{
103-
if (SPECIAL_CONST_P(obj)) return 1;
104-
return 0;
105-
}
106-
static inline mrb_value
107-
mrb_fixnum_value(mrb_int i)
108-
{
109-
mrb_value v;
110-
111-
v.tt = MRB_TT_FIXNUM;
112-
v.value.i = i;
113-
return v;
114-
}
115-
116-
static inline mrb_value
117-
mrb_float_value(mrb_float f)
118-
{
119-
mrb_value v;
120-
121-
v.tt = MRB_TT_FLOAT;
122-
v.value.f = f;
123-
return v;
124-
}
125-
126-
static inline mrb_value
127-
mrb_symbol_value(mrb_sym i)
128-
{
129-
mrb_value v;
130-
131-
v.tt = MRB_TT_SYMBOL;
132-
v.value.sym = i;
133-
return v;
134-
}
135-
136-
static inline mrb_value
137-
mrb_obj_value(void *p)
138-
{
139-
mrb_value v;
140-
struct RBasic *b = (struct RBasic*) p;
141-
142-
v.tt = b->tt;
143-
v.value.p = p;
144-
return v;
145-
}
146-
147-
static inline mrb_value
148-
mrb_false_value(void)
149-
{
150-
mrb_value v;
151-
152-
v.tt = MRB_TT_FALSE;
153-
v.value.i = 1;
154-
return v;
155-
}
156-
157-
static inline mrb_value
158-
mrb_nil_value(void)
159-
{
160-
mrb_value v;
161-
162-
v.tt = MRB_TT_FALSE;
163-
v.value.i = 0;
164-
return v;
165-
}
166-
167-
static inline mrb_value
168-
mrb_true_value(void)
169-
{
170-
mrb_value v;
171-
172-
v.tt = MRB_TT_TRUE;
173-
v.value.i = 1;
174-
return v;
175-
}
176-
177-
static inline mrb_value
178-
mrb_undef_value(void)
179-
{
180-
mrb_value v;
181-
182-
v.tt = MRB_TT_UNDEF;
183-
v.value.i = 0;
184-
return v;
185-
}
38+
#include "mruby/value.h"
18639

18740
typedef int32_t mrb_code;
18841

‎include/mruby/object.h‎

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
11
/*
2-
** object.h - Object, NilClass, TrueClass, FalseClass class
2+
** mruby/object.h - Object, NilClass, TrueClass, FalseClass class
33
**
44
** See Copyright Notice in mruby.h
55
*/
66

77
#ifndef MRUBY_OBJECT_H
88
#define MRUBY_OBJECT_H
99

10-
#if defined(__cplusplus)
11-
extern "C" {
12-
#endif
13-
1410
#define MRUBY_OBJECT_HEADER \
1511
enum mrb_vtype tt:8; \
1612
unsigned int color:3;\
1713
unsigned int flags:21;\
1814
struct RClass *c;\
1915
struct RBasic *gcnext
2016

21-
2217
/* white: 011, black: 100, gray: 000 */
2318
#define MRB_GC_GRAY 0
2419
#define MRB_GC_WHITE_A 1
@@ -54,8 +49,4 @@ struct RObject {
5449
#define ROBJECT_IVPTR(v) (((struct RObject*)((v).value.p))->iv)
5550
#define ROBJECT_NUMIV(v) (ROBJECT_IVPTR(v) ? ROBJECT_IVPTR(v)->size : 0)
5651

57-
#if defined(__cplusplus)
58-
} /* extern "C" { */
59-
#endif
60-
6152
#endif /* MRUBY_OBJECT_H */

‎include/mruby/value.h‎

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
/*
2+
** mruby/value.h - mrb_value definition
3+
**
4+
** See Copyright Notice in mruby.h
5+
*/
6+
7+
#ifndef MRUBY_VALUE_H
8+
#define MRUBY_VALUE_H
9+
10+
enum mrb_vtype {
11+
MRB_TT_FALSE = 0, /* 0 */
12+
MRB_TT_FREE, /* 1 */
13+
MRB_TT_TRUE, /* 2 */
14+
MRB_TT_FIXNUM, /* 3 */
15+
MRB_TT_SYMBOL, /* 4 */
16+
MRB_TT_UNDEF, /* 5 */
17+
MRB_TT_FLOAT, /* 6 */
18+
MRB_TT_OBJECT, /* 7 */
19+
MRB_TT_CLASS, /* 8 */
20+
MRB_TT_MODULE, /* 9 */
21+
MRB_TT_ICLASS, /* 10 */
22+
MRB_TT_SCLASS, /* 11 */
23+
MRB_TT_PROC, /* 12 */
24+
MRB_TT_ARRAY, /* 13 */
25+
MRB_TT_HASH, /* 14 */
26+
MRB_TT_STRING, /* 15 */
27+
MRB_TT_RANGE, /* 16 */
28+
MRB_TT_REGEX, /* 17 */
29+
MRB_TT_STRUCT, /* 18 */
30+
MRB_TT_EXCEPTION, /* 19 */
31+
MRB_TT_MATCH, /* 20 */
32+
MRB_TT_FILE, /* 21 */
33+
MRB_TT_ENV, /* 22 */
34+
MRB_TT_DATA, /* 23 */
35+
MRB_TT_MAXDEFINE /* 24 */
36+
};
37+
38+
typedef struct mrb_value {
39+
union {
40+
mrb_float f;
41+
void *p;
42+
mrb_int i;
43+
mrb_sym sym;
44+
} value;
45+
enum mrb_vtype tt:8;
46+
} mrb_value;
47+
48+
#define mrb_type(o) (o).tt
49+
#define mrb_nil_p(o) ((o).tt == MRB_TT_FALSE && !(o).value.i)
50+
#define mrb_test(o) ((o).tt != MRB_TT_FALSE)
51+
#define mrb_fixnum(o) (o).value.i
52+
#define mrb_float(o) (o).value.f
53+
#define mrb_symbol(o) (o).value.sym
54+
#define mrb_object(o) ((struct RBasic *) (o).value.p)
55+
#define FIXNUM_P(o) ((o).tt == MRB_TT_FIXNUM)
56+
#define mrb_undef_p(o) ((o).tt == MRB_TT_UNDEF)
57+
58+
#include "mruby/object.h"
59+
60+
#define IMMEDIATE_P(x) (mrb_type(x) <= MRB_TT_FLOAT)
61+
#define SPECIAL_CONST_P(x) IMMEDIATE_P(x)
62+
#define SYMBOL_P(o) (mrb_type(o) == MRB_TT_SYMBOL)
63+
#define RTEST(o) mrb_test(o)
64+
65+
#define FL_ABLE(x) (!SPECIAL_CONST_P(x))
66+
#define FL_TEST(x,f) (FL_ABLE(x)?(RBASIC(x)->flags&(f)):0)
67+
#define FL_ANY(x,f) FL_TEST(x,f)
68+
#define FL_ALL(x,f) (FL_TEST(x,f) == (f))
69+
#define FL_SET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags |= (f);} while (0)
70+
#define FL_UNSET(x,f) do {if (FL_ABLE(x)) RBASIC(x)->flags &= ~(f);} while (0)
71+
72+
static inline mrb_int
73+
mrb_special_const_p(mrb_value obj)
74+
{
75+
if (SPECIAL_CONST_P(obj)) return 1;
76+
return 0;
77+
}
78+
static inline mrb_value
79+
mrb_fixnum_value(mrb_int i)
80+
{
81+
mrb_value v;
82+
83+
v.tt = MRB_TT_FIXNUM;
84+
v.value.i = i;
85+
return v;
86+
}
87+
88+
static inline mrb_value
89+
mrb_float_value(mrb_float f)
90+
{
91+
mrb_value v;
92+
93+
v.tt = MRB_TT_FLOAT;
94+
v.value.f = f;
95+
return v;
96+
}
97+
98+
static inline mrb_value
99+
mrb_symbol_value(mrb_sym i)
100+
{
101+
mrb_value v;
102+
103+
v.tt = MRB_TT_SYMBOL;
104+
v.value.sym = i;
105+
return v;
106+
}
107+
108+
static inline mrb_value
109+
mrb_obj_value(void *p)
110+
{
111+
mrb_value v;
112+
struct RBasic *b = (struct RBasic*) p;
113+
114+
v.tt = b->tt;
115+
v.value.p = p;
116+
return v;
117+
}
118+
119+
static inline mrb_value
120+
mrb_false_value(void)
121+
{
122+
mrb_value v;
123+
124+
v.tt = MRB_TT_FALSE;
125+
v.value.i = 1;
126+
return v;
127+
}
128+
129+
static inline mrb_value
130+
mrb_nil_value(void)
131+
{
132+
mrb_value v;
133+
134+
v.tt = MRB_TT_FALSE;
135+
v.value.i = 0;
136+
return v;
137+
}
138+
139+
static inline mrb_value
140+
mrb_true_value(void)
141+
{
142+
mrb_value v;
143+
144+
v.tt = MRB_TT_TRUE;
145+
v.value.i = 1;
146+
return v;
147+
}
148+
149+
static inline mrb_value
150+
mrb_undef_value(void)
151+
{
152+
mrb_value v;
153+
154+
v.tt = MRB_TT_UNDEF;
155+
v.value.i = 0;
156+
return v;
157+
}
158+
159+
#endif /* MRUBY_OBJECT_H */

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL