Commit Graph

97 Commits

Author SHA1 Message Date
Tatsuhiro Tsujikawa a085c04e37 Don't crash if NULL is passed to mrb_close
Sometimes it is very useful just return from mrb_close if NULL is
passed as mrb.  This is the same spirit of free(3), which just does
nothing if NULL is passed.
2015-09-12 12:11:10 +09:00
Tatsuhiko Kubo 5fa30aeaea Fix mismatches for MRB_API declarations. 2014-08-29 01:06:22 +09:00
Tatsuhiko Kubo 53a7549e1c Fix error handling for mrb_open_allocf().
When DISABLE_GEMS is not defined and
a return value of mrb_open_core() is NULL,
mrb_open_allocf() may cause SEGV.
2014-08-20 05:15:21 +09:00
Yukihiro "Matz" Matsumoto 206f89e209 add MRB_API modifiers to mruby API functions 2014-08-04 00:47:08 +09:00
Yukihiro "Matz" Matsumoto 875c07a742 Merge pull request #2477 from take-cheeze/allocf_ud
Add field `allocf_ud` to replace current `ud`.
2014-07-24 23:22:58 +09:00
Yukihiro "Matz" Matsumoto 4cc9e5d8b1 since #1441, NaN boxing with 64bit pointer works; close #2476 2014-07-21 21:55:52 +09:00
take_cheeze fc9a91c4a6 Add field allocf_ud to replace current ud.
Since some use it as `mrb_state` associated user data.
2014-07-17 21:48:17 +09:00
Yukihiro "Matz" Matsumoto d2910a162d Merge pull request #2442 from suzukaze/use-mrb-str-nofree-macro
Use RSTR_NOFREE_P in state.c
2014-07-03 21:45:28 +09:00
Jun Hiroe 569ea74021 Use *_EMBED_* macro in state.c 2014-07-03 18:26:42 +09:00
Jun Hiroe bd82d7c794 Use RSTR_NOFREE_P in state.c 2014-07-03 18:10:51 +09:00
Yukihiro "Matz" Matsumoto ac0addd98f refacor mrb_open_core() to reduce a local variable 2014-06-23 20:06:17 +09:00
take_cheeze baca365caa rename mrb_open_without_mrbgems to mrb_open_core 2014-06-23 20:06:17 +09:00
take_cheeze 36813c87f6 make default allocf public to use it with mrb_open_without_mrbgems 2014-06-23 20:06:17 +09:00
take_cheeze 6bb56ed920 add mrb_open_without_mrbgems API 2014-06-23 20:06:17 +09:00
take_cheeze 62f41ddd3b Add fixed state atexit stack feature.
Adds following macros:
* MRB_FIXED_STATE_ATEXIT_STACK (not defined by default)
  * When defined enables fixed state atexit stack.
* MRB_FIXED_STATE_ATEXIT_STACK_SIZE (default value: 5)
  * This macro will be ignored when `MRB_FIXED_STATE_ATEXIT_STACK` isn't defined.
  * When `mrb_state_atexit` is called more than this value it will raise runtime error.
2014-06-16 16:03:35 +09:00
Yukihiro "Matz" Matsumoto fe95f44013 rename mrb_atexit to mrb_state_atexit to clarify a func will be called at the end of state, not process; ref #2211 2014-06-10 17:59:56 +09:00
take_cheeze 4a27dd0e8a Use _Static_assert when C11 is available and use it in pointer size check. 2014-06-08 23:16:51 +09:00
take_cheeze 4c1fb65d85 Release mrb->atexit_stack on mrb_close. 2014-06-06 01:04:12 +09:00
take_cheeze 64300b2c43 Add API mrb_atexit().
`mrb_final_mrbgems` will be called as mrb_state atexit function.
Maybe useful in #1844.
2014-05-08 22:19:14 +09:00
Yukihiro "Matz" Matsumoto 3244ddf0c3 presreve local variables names in irep->lv 2014-04-28 07:29:37 +09:00
Yukihiro "Matz" Matsumoto 4685a43dd6 should always initialize header flags for pooled strings 2014-04-14 16:55:28 +09:00
ksss e08998be8f Delegate irep string free to mrb_gc_free_str 2014-04-12 04:44:56 +00:00
Yukihiro "Matz" Matsumoto 306b1d3c51 Merge pull request #1948 from monaka/pr-remove-unused-null-check
Remove redundant NULL checks.
2014-03-26 13:32:18 +09:00
Masaki Muranaka dcff9012e3 Remove redundant NULL checks.
mrb_malloc causes an exception when memory was empty.
2014-03-26 11:21:20 +09:00
ksss ebf6da7e30 mrb_str_pool add string capa 2014-03-25 08:44:59 +09:00
ksss b0f10b5c3d mrb_str_pool use embed-string 2014-03-23 08:04:54 +00:00
ksss 54132e4364 make embed string when create literals 2014-03-06 13:47:51 +00:00
ksss 4070b5987a embed small string
use flags 4 for *this object is embed*
use flags 8~64 for *embed string length*
2014-03-06 13:12:08 +00:00
Yukihiro "Matz" Matsumoto 78f2902c06 need to initialize flags for pooled strings; close #1768 2014-03-01 10:48:22 +09:00
Yukihiro "Matz" Matsumoto 7ba4612956 use mrb_str_new_lit() more widely 2014-02-06 08:54:47 +09:00
cremno aa655b9ee1 remove superfluous includes
- reduce compile time by a little bit (full-core: ~0.7s for me)
- thanks to 'include-what-you-use' for some help
- include Standard C header files before any other (coding style)
2014-01-07 17:56:30 +01:00
Yukihiro "Matz" Matsumoto c70e2f7099 wrong operator precedence fixed 2013-12-25 13:30:03 +09:00
Yukihiro "Matz" Matsumoto 673d9183cf avoid copying when the original string comes with MRB_STR_NOFREE 2013-12-25 10:30:48 +09:00
Yukihiro "Matz" Matsumoto 9fab01caee remove MRB_IREP_ARRAY_INIT_SIZE which is no longer used 2013-12-24 07:26:35 +09:00
Yukihiro "Matz" Matsumoto 9ac386923d float objects in pool are objects when MRB_WORD_BOXING is set 2013-11-27 17:29:28 +09:00
Yukihiro "Matz" Matsumoto 07b8a5b042 Make mrb->arena variable sized. Use MRB_GC_FIXED_ARENA for old behavior.
You will not see "arena overflow" error anymore, but I encourage gem authors
to check your gems with MRB_GC_FIXED_ARENA to avoid memory broat.
2013-11-22 09:20:06 +09:00
Yukihiro "Matz" Matsumoto fb386011df rename API mrb_str_dup_static() -> mrb_str_pool() 2013-11-20 08:37:16 +09:00
Yukihiro "Matz" Matsumoto 217595c325 need to free pooled string bodies as well 2013-11-20 07:38:53 +09:00
Miura Hideki 54c5b12fb7 irep->pool struct pool -> mrb_value 2013-11-19 20:38:02 +09:00
Yukihiro "Matz" Matsumoto 71354b91cb enum mrb_vtype varies on compile time configuration, namely MRB_NAN_BOXING 2013-11-15 02:45:52 +09:00
Yukihiro "Matz" Matsumoto de790bdc27 allow irep to be GCed 2013-11-08 20:39:50 +09:00
Yukihiro "Matz" Matsumoto c8936754e8 wrong return value from read_lineno_record() 2013-11-07 08:20:03 +09:00
Yukihiro "Matz" Matsumoto d8913dae3f forgot to free irep->reps 2013-11-07 04:22:10 +09:00
Yukihiro "Matz" Matsumoto 677a2ac226 irep->pool not to be GCed 2013-11-07 04:20:46 +09:00
Yukihiro "Matz" Matsumoto e92d4e2680 modified to use irep->reps to reference child ireps. preparation for
removing irep array from mrb_state.  note that instructions OP_LAMBDA,
OP_EXEC and OP_EPUSH are incompatible, and dumped mrb format has changed.
2013-11-07 03:54:22 +09:00
Cremno 12997cebc3 BUG: mrb_irep_free (access of freed memory) 2013-09-03 21:21:49 +02:00
take_cheeze 3d1fffbd6b support multiple filename in irep 2013-09-02 00:48:06 +09:00
fleuria 620e323d15 replace assert with mrb_assert 2013-07-25 03:00:03 +08:00
Yukihiro "Matz" Matsumoto ae288fe78d add assertion that check sizeof(void*) should be 4 bytes when MRB_NAN_BOXING is in use 2013-06-11 12:43:42 +09:00
Yukihiro "Matz" Matsumoto 5c0b9b703c primary mruby fiber implementation 2013-05-20 17:54:07 +09:00