summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-struct/src
AgeCommit message (Collapse)Author
2018-08-13Remove potential path to avoid uninitialized variable access.Yukihiro "Matz" Matsumoto
2018-08-06Small refactoring.Yukihiro "Matz" Matsumoto
The macro `RCLASS_SUPER`, `RCLASS_IV_TBL` and `RCLASS_M_TBL` are removed from `include/mruby/class.h`.
2017-12-12Modifying frozen objects will raise `FrozenError`.Yukihiro "Matz" Matsumoto
`FrozenError` is a subclass of `RuntimeError` which used to be raised. [Ruby2.5]
2017-11-20Add `MRB_METHOD_TABLE_INLINE` option.Yukihiro "Matz" Matsumoto
Now the method tables (in classes/modules and caches) keeps C function pointers without wrapping in `struct RProc` objects. For the sake of portability, `mrb_method_t` is represented by the struct and union, but if the most significant bit of the pointer is not used by the platform, `mrb_method_t` should be packed in `uintptr_t` to reduce memory usage. `MRB_METHOD_TABLE_INLINE` is turned on by default for linux.
2017-11-03Always check division-by-zero to avoid undefined behavior; fix #3816Yukihiro "Matz" Matsumoto
Also removed the code to normalize NaN value for `MRB_NAN_BOXING`. Tha code was added to fix #1712 but no longer required after 249f05e7d.
2017-10-29Need to check number of argument of `Struct#new`; fix #3823Yukihiro "Matz" Matsumoto
2017-10-17Add more checks before accessing struct pointer; ref #3831Yukihiro "Matz" Matsumoto
2017-10-16Check struct-array pointer before accessing; fix #3831Yukihiro "Matz" Matsumoto
2017-10-15fix alias for Struct accessorsdearblue
2017-07-27Embed small size array elements in the heap.Yukihiro "Matz" Matsumoto
It reduces the memory consumption and sometimes improve the performance as well. For example, the consumed memory size of `bench/bm_ao_render.rb` is reduced from 1.2GB to 1GB, and its total execution time become 18.795 sec from 22.229 sec.
2017-07-12Use "$!" specifier of `mrb_get_args`.Yukihiro "Matz" Matsumoto
2017-06-27Remove unnecessary initialization of a local variable.Yukihiro "Matz" Matsumoto
2017-04-21Support freeze in `Struct`.take_cheeze
2017-04-13Struct may not be initialized in #to_h; fix #3607Yukihiro "Matz" Matsumoto
2017-04-05Should specify instance type of Structs; fix #3591Yukihiro "Matz" Matsumoto
2017-04-05Need to insert write barriers in struct updates; fix #3547Yukihiro "Matz" Matsumoto
2016-11-30should not refer Struct class by name; fix #3296Yukihiro "Matz" Matsumoto
2016-11-25resolve conflict; ref #3281Yukihiro "Matz" Matsumoto
2016-11-24Don't allow array parameter in Struct.newClayton Smith
2016-11-24Remove constant when a struct is redefined.Clayton Smith
2016-11-16Correct argument specifications for few methods:Tomasz Dąbrowski
- Struct#values_at - Module#define_method - String#chop - String#chop!
2016-07-25Merge pull request #3179 from ksss/structYukihiro "Matz" Matsumoto
Should not define to `Struct` class
2016-07-25Fixed crash error when #initialize is redefined for Struct; fix #3177Yukihiro "Matz" Matsumoto
refactored redundant functions; removed optimized accessors for safety this fix also close #3178
2016-07-22Should not define to `Struct` classksss
2016-02-19mruby-struct: copied Struct length is not initialized; fix #3114Yukihiro "Matz" Matsumoto
2015-12-26Merge pull request #2331 from take-cheeze/struct_testYukihiro "Matz" Matsumoto
Improve `Struct` test.
2015-11-27include changed from by quotes ("") to by brackets (<>); close #3032Yukihiro "Matz" Matsumoto
2015-09-23mruby-struct gem refactoringYukihiro "Matz" Matsumoto
2015-06-24Remove unnecessary backticks.Franck Verrot
Dr Markus Kuhn published in 1999 an article [1] explaining in details why we shouldn't use the ASCII grave accent (0x60) as a left quotation. Backticks have been used most notably to produce nice-looking LaTeX documents but it doesn't seem to be an issue on modern platforms and for the oldest ones, there are workarounds as mentioned by Dr Kuhn. [1]: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
2015-05-28remove unnecessary including of <ctype.h>cremno
Not needed anymore since 85075bef7583edd0a48cfbdfaa632cbdacf78f2c
2015-02-07Remove eql_p variable in mrb_struct_eql funcJun Hiroe
2015-02-07Remove eql_p variable in mrb_struct_equal funcJun Hiroe
2015-01-12fix Segmentation fault on Struct#inspect due to recursive Struct objecttakahashim
2014-09-19change class argument of mrb_const_defined_at from `struct RClass*` to ↵Yukihiro "Matz" Matsumoto
`mrb_value` to make it consistent with mrb_const_defined; ref #2593
2014-09-12constify pointer from RARRAY_PTR to detect potential write barrier bugs.Yukihiro "Matz" Matsumoto
if you see compiler errors due to this commit, you'd better to use array-modifying functions, e.g. mrb_ary_set() or mrb_ary_push(), otherwise you might see nasty GC bugs in the future. if you are sure what you are doing, replace `RARRAY_PTR(ary)` by `mrb_ary_ptr(ary)->ptr`. but be warned.
2014-09-04get rid of shadowing variables (mrbgems)cremno
Mostly renaming, except that the definition of struct accessor methods is now done in a new function.
2014-06-19Raise `NameError` as defined in specification when `Struct` member isn't found.take_cheeze
2014-06-06reduce calling mrb_sym2name_len() from struct.c; ref #2365Yukihiro "Matz" Matsumoto
2014-06-05mruby-struct: implement `mrb_is_(local|const)_id`cremno
2014-06-05mruby-struct: remove unused functionscremno
2014-06-05mruby-struct: use correct data typescremno
2014-06-05mruby-struct: internal linkage for all functionscremno
2014-05-28Add invalid key type check in `Struct#[]=`.take_cheeze
2014-05-28Support string key in `Struct#[]=`.take_cheeze
2014-05-03refactoring mruby-structYukihiro "Matz" Matsumoto
2014-05-03use proper length for mrb_get_values_at()Yukihiro "Matz" Matsumoto
separate mrb_range_beg_len() into two: the one truncates range into the sequence size, and the one does not. #values_at uses the latter.
2014-05-02Implement Struct#values_at and Array#values_at .take_cheeze
Add API `mrb_get_values_at()` to mruby/range.h .
2014-04-30Implement Struct#to_h .take_cheeze
2014-04-27Implement Struct#to_a and Struct#values .take_cheeze
2014-04-25Use mrb_int in mrbgem rest argument getting.take_cheeze