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