From 87d1bbe94794304d92fc9a4af5cf17eab5d1534c Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 22 Apr 2020 16:44:39 +0900 Subject: Add new function `mrb_singleton_class_ptr()`; ref #4973 The difference between `mrb_singleton_class` and `mrb_singleton_class_ptr`: - `mrb_singleton_class_ptr` returns `struct RClass*`. - `mrb_singleton_class_ptr` returns `NULL` on immediate values where `mrb_singleton_class` raises exceptions. --- include/mruby.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/mruby.h') diff --git a/include/mruby.h b/include/mruby.h index 7419618fd..4b7a673f3 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -317,7 +317,9 @@ MRB_API struct RClass *mrb_define_class(mrb_state *mrb, const char *name, struct * @return [struct RClass *] Reference to the newly defined module. */ MRB_API struct RClass *mrb_define_module(mrb_state *mrb, const char *name); + MRB_API mrb_value mrb_singleton_class(mrb_state *mrb, mrb_value val); +MRB_API struct RClass *mrb_singleton_class_ptr(mrb_state *mrb, mrb_value val); /** * Include a module in another class or module. -- cgit v1.2.3 From 1b0cf6a91bcec88699150c6376c9eacf86af85ff Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 26 Apr 2020 21:15:24 +0900 Subject: Reduce `struct mrb_context` --- include/mruby.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/mruby.h') diff --git a/include/mruby.h b/include/mruby.h index 4b7a673f3..eca7eb9cf 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -164,8 +164,8 @@ struct mrb_context { struct RProc **ensure; /* ensure handler stack */ uint16_t esize, eidx; - enum mrb_fiber_state status; - mrb_bool vmexec; + enum mrb_fiber_state status : 4; + mrb_bool vmexec : 1; struct RFiber *fib; }; -- cgit v1.2.3 From c143d87e7ce55092aa7b3578be3d525d5b311384 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 6 May 2020 15:49:06 +0900 Subject: Remove `mrb_run` from `MRB_API`; #4488 `mrb_run` requires to push callinfo stack before calling, which is very hard from outside of `vm.c`. So there should be virtually no correct usage of the function, hence the cause of #4488. We removed it. You can use `mrb_top_run(mrb, proc, self, 0)` instead of `mrb_run(mrb, proc self)`. --- include/mruby.h | 1 - src/vm.c | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include/mruby.h') diff --git a/include/mruby.h b/include/mruby.h index eca7eb9cf..af7503375 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -1150,7 +1150,6 @@ MRB_API void mrb_close(mrb_state *mrb); MRB_API void* mrb_default_allocf(mrb_state*, void*, size_t, void*); MRB_API mrb_value mrb_top_self(mrb_state *mrb); -MRB_API mrb_value mrb_run(mrb_state *mrb, struct RProc* proc, mrb_value self); MRB_API mrb_value mrb_top_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int stack_keep); MRB_API mrb_value mrb_vm_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int stack_keep); MRB_API mrb_value mrb_vm_exec(mrb_state *mrb, struct RProc *proc, const mrb_code *iseq); diff --git a/src/vm.c b/src/vm.c index 85f28584c..ea1bb5087 100644 --- a/src/vm.c +++ b/src/vm.c @@ -324,6 +324,7 @@ cipop(mrb_state *mrb) } void mrb_exc_set(mrb_state *mrb, mrb_value exc); +static mrb_value mrb_run(mrb_state *mrb, struct RProc* proc, mrb_value self); static void ecall(mrb_state *mrb) @@ -2808,7 +2809,7 @@ RETRY_TRY_BLOCK: MRB_END_EXC(&c_jmp); } -MRB_API mrb_value +static mrb_value mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) { if (mrb->c->ci->argc < 0) { -- cgit v1.2.3 From 89ceb3e7baf54cc3360a76c94b02249e7afc491e Mon Sep 17 00:00:00 2001 From: Rory OConnell <19547+RoryO@users.noreply.github.com> Date: Sun, 31 May 2020 20:11:38 -0700 Subject: Fix float constant redefinition warnings --- include/mruby.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/mruby.h') diff --git a/include/mruby.h b/include/mruby.h index af7503375..2fd075112 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -76,6 +76,7 @@ #include #ifndef MRB_WITHOUT_FLOAT +#include #ifndef FLT_EPSILON #define FLT_EPSILON (1.19209290e-07f) #endif -- cgit v1.2.3