summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/mrbconf.h4
-rw-r--r--include/mruby/struct.h27
-rw-r--r--include/mruby/value.h22
-rw-r--r--mrbgems/mruby-struct/mrbgem.rake4
-rw-r--r--mrbgems/mruby-struct/src/struct.c (renamed from src/struct.c)18
-rw-r--r--mrbgems/mruby-struct/test/struct.rb (renamed from test/t/struct.rb)0
-rw-r--r--src/etc.c1
-rw-r--r--src/gc.c3
-rw-r--r--src/init.c4
-rw-r--r--src/object.c1
10 files changed, 25 insertions, 59 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h
index 45e3d6034..c84480af7 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -45,7 +45,6 @@
/* -DDISABLE_XXXX to drop following features */
//#define DISABLE_SPRINTF /* Kernel.sprintf method */
-//#define DISABLE_STRUCT /* Struct class */
//#define DISABLE_STDIO /* use of stdio */
/* -DENABLE_XXXX to enable following features */
@@ -84,9 +83,6 @@ typedef short mrb_sym;
#ifndef DISABLE_SPRINTF
#define ENABLE_SPRINTF
#endif
-#ifndef DISABLE_STRUCT
-#define ENABLE_STRUCT
-#endif
#ifndef DISABLE_STDIO
#define ENABLE_STDIO
#endif
diff --git a/include/mruby/struct.h b/include/mruby/struct.h
deleted file mode 100644
index cfe6df135..000000000
--- a/include/mruby/struct.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-** mruby/struct.h - Struct class
-**
-** See Copyright Notice in mruby.h
-*/
-
-#ifndef MRUBY_STRUCT_H
-#define MRUBY_STRUCT_H
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-struct RStruct {
- struct RBasic basic;
- long len;
- mrb_value *ptr;
-};
-#define RSTRUCT(st) ((struct RStruct*)((st).value.p))
-#define RSTRUCT_LEN(st) ((int)(RSTRUCT(st)->len))
-#define RSTRUCT_PTR(st) (RSTRUCT(st)->ptr)
-
-#if defined(__cplusplus)
-} /* extern "C" { */
-#endif
-
-#endif /* MRUBY_STRUCT_H */
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 17f51db94..1dfa7b975 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -29,12 +29,11 @@ enum mrb_vtype {
MRB_TT_HASH, /* 16 */
MRB_TT_STRING, /* 17 */
MRB_TT_RANGE, /* 18 */
- MRB_TT_STRUCT, /* 19 */
- MRB_TT_EXCEPTION, /* 20 */
- MRB_TT_FILE, /* 21 */
- MRB_TT_ENV, /* 22 */
- MRB_TT_DATA, /* 23 */
- MRB_TT_MAXDEFINE /* 24 */
+ MRB_TT_EXCEPTION, /* 19 */
+ MRB_TT_FILE, /* 20 */
+ MRB_TT_ENV, /* 21 */
+ MRB_TT_DATA, /* 22 */
+ MRB_TT_MAXDEFINE /* 23 */
};
typedef struct mrb_value {
@@ -89,12 +88,11 @@ enum mrb_vtype {
MRB_TT_HASH, /* 17 */
MRB_TT_STRING, /* 18 */
MRB_TT_RANGE, /* 19 */
- MRB_TT_STRUCT, /* 20 */
- MRB_TT_EXCEPTION, /* 21 */
- MRB_TT_FILE, /* 22 */
- MRB_TT_ENV, /* 23 */
- MRB_TT_DATA, /* 24 */
- MRB_TT_MAXDEFINE /* 25 */
+ MRB_TT_EXCEPTION, /* 20 */
+ MRB_TT_FILE, /* 21 */
+ MRB_TT_ENV, /* 22 */
+ MRB_TT_DATA, /* 23 */
+ MRB_TT_MAXDEFINE /* 24 */
};
#ifdef MRB_ENDIAN_BIG
diff --git a/mrbgems/mruby-struct/mrbgem.rake b/mrbgems/mruby-struct/mrbgem.rake
new file mode 100644
index 000000000..476e990da
--- /dev/null
+++ b/mrbgems/mruby-struct/mrbgem.rake
@@ -0,0 +1,4 @@
+MRuby::Gem::Specification.new('mruby-struct') do |spec|
+ spec.license = 'MIT'
+ spec.authors = 'mruby developers'
+end
diff --git a/src/struct.c b/mrbgems/mruby-struct/src/struct.c
index d7b63259e..131702e9c 100644
--- a/src/struct.c
+++ b/mrbgems/mruby-struct/src/struct.c
@@ -4,18 +4,23 @@
** See Copyright Notice in mruby.h
*/
-#include "mruby.h"
-#ifdef ENABLE_STRUCT
#include <string.h>
-#include "error.h"
-#include "mruby/struct.h"
-#include "mruby/array.h"
#include <stdarg.h>
-
+#include "mruby.h"
+#include "mruby/array.h"
#include "mruby/string.h"
#include "mruby/class.h"
#include "mruby/variable.h"
+struct RStruct {
+ struct RBasic basic;
+ long len;
+ mrb_value *ptr;
+};
+
+#define RSTRUCT(st) ((struct RStruct*)((st).value.p))
+#define RSTRUCT_LEN(st) ((int)(RSTRUCT(st)->len))
+#define RSTRUCT_PTR(st) (RSTRUCT(st)->ptr)
static struct RClass *
struct_class(mrb_state *mrb)
@@ -778,4 +783,3 @@ mrb_init_struct(mrb_state *mrb)
mrb_define_method(mrb, st, "eql?", mrb_struct_eql, ARGS_REQ(1)); /* 15.2.18.4.12(x) */
}
-#endif /* ENABLE_STRUCT */
diff --git a/test/t/struct.rb b/mrbgems/mruby-struct/test/struct.rb
index d79b30c0e..d79b30c0e 100644
--- a/test/t/struct.rb
+++ b/mrbgems/mruby-struct/test/struct.rb
diff --git a/src/etc.c b/src/etc.c
index 6a43ddd31..644465c80 100644
--- a/src/etc.c
+++ b/src/etc.c
@@ -170,7 +170,6 @@ mrb_obj_id(mrb_value obj)
case MRB_TT_ARRAY:
case MRB_TT_HASH:
case MRB_TT_RANGE:
- case MRB_TT_STRUCT:
case MRB_TT_EXCEPTION:
case MRB_TT_FILE:
case MRB_TT_DATA:
diff --git a/src/gc.c b/src/gc.c
index 5cc794fd9..c48e6949a 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -86,9 +86,6 @@ typedef struct {
struct RArray array;
struct RHash hash;
struct RRange range;
-#ifdef ENABLE_STRUCT
- struct RStruct strct;
-#endif
struct RData data;
struct RProc proc;
} as;
diff --git a/src/init.c b/src/init.c
index fa2d5d305..0d1a24881 100644
--- a/src/init.c
+++ b/src/init.c
@@ -20,7 +20,6 @@ void mrb_init_array(mrb_state*);
void mrb_init_hash(mrb_state*);
void mrb_init_numeric(mrb_state*);
void mrb_init_range(mrb_state*);
-void mrb_init_struct(mrb_state*);
void mrb_init_gc(mrb_state*);
void mrb_init_print(mrb_state*);
void mrb_init_math(mrb_state*);
@@ -48,9 +47,6 @@ mrb_init_core(mrb_state *mrb)
mrb_init_hash(mrb); DONE;
mrb_init_numeric(mrb); DONE;
mrb_init_range(mrb); DONE;
-#ifdef ENABLE_STRUCT
- mrb_init_struct(mrb); DONE;
-#endif
mrb_init_gc(mrb); DONE;
#ifdef ENABLE_STDIO
mrb_init_print(mrb); DONE;
diff --git a/src/object.c b/src/object.c
index e087c35c0..6707fc6e4 100644
--- a/src/object.c
+++ b/src/object.c
@@ -379,7 +379,6 @@ static const struct types {
{MRB_TT_HASH, "Hash"},
{MRB_TT_STRING, "String"},
{MRB_TT_RANGE, "Range"},
- {MRB_TT_STRUCT, "Struct"},
// {MRB_TT_BIGNUM, "Bignum"},
{MRB_TT_FILE, "File"},
{MRB_TT_DATA, "Data"}, /* internal use: wrapped C pointers */