summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-struct/src
AgeCommit message (Collapse)Author
2020-01-01Rename `mrb_num_args_error` to `mrb_argnum_error`; ref #4863Yukihiro "Matz" Matsumoto
2019-12-12Add `mrb_num_args_error()` for "wrong number of arguments" errorKOBAYASHI Shuji
To unify the style of messages.
2019-09-25Rename symbol-to-string functions; close #4684Yukihiro "Matz" Matsumoto
* mrb_sym2name -> mrb_sym_name * mrb_sym2name_len -> mrb_sym_name_len * mrb_sym2str -> mrb_sym_str
2019-08-05Use new specifiers/modifiers of `mrb_vfromat()`KOBAYASHI Shuji
The binary sizes (gems are only `mruby-bin-mruby`) are reduced slightly in my environment than before the introduction of new specifiers/modifiers (5116789a) with this change. ------------+-------------------+-------------------+-------- BINARY | BEFORE (5116789a) | AFTER (This PR) | RATIO ------------+-------------------+-------------------+-------- mruby | 593416 bytes | 593208 bytes | -0.04% libmruby.a | 769048 bytes | 767264 bytes | -0.23% ------------+-------------------+-------------------+-------- BTW, I accidentally changed `tasks/toolchains/visualcpp.rake` at #4613, so I put it back.
2019-06-25Renamed `stacked` to `onstack`; ref #4523Yukihiro "Matz" Matsumoto
2019-06-22Use stack memory for small name of Struct membersdearblue
2019-06-17Merge pull request #4507 from shuujii/fix-index-in-error-message-of-Struct-arefYukihiro "Matz" Matsumoto
Fix index in error message of `Struct#[]`
2019-06-17Merge pull request #4502 from ↵Yukihiro "Matz" Matsumoto
shuujii/adjust-allocation-size-in-mrb_id_attrset-mruby-struct Adjust allocation size in `mrb_id_attrset()` (`mruby-struct`)
2019-06-15Fix index in error message of `Struct#[]`KOBAYASHI Shuji
Before this patch: $ bin/mruby -e 'Struct.new(:a,:b).new[-3]' #=> offset -1 too small for struct(size:2) (IndexError) After this patch (same as Ruby): $ bin/mruby -e 'Struct.new(:a,:b).new[-3]' #=> offset -3 too small for struct(size:2) (IndexError)
2019-06-14Remove a meaningless branch condition in `mruby-struct`KOBAYASHI Shuji
The following branch condition is always true: // mrbgems/mruby-struct/src/struct.c:187 in make_struct_define_accessors() if (is_local_id(mrb, name) || is_const_id(mrb, name)) {
2019-06-13Fix class name validation in `Struct.new`KOBAYASHI Shuji
Before this patch: $ bin/mruby -e 'p Struct.new("A-")' #=> Struct::"A-" After this patch: $ bin/mruby -e 'p Struct.new("A-")' #=> NameError: identifier A- needs to be constant
2019-06-12Adjust allocation size in `mrb_id_attrset()` (`mruby-struct`)KOBAYASHI Shuji
2019-04-09Extract frozen checking to functionKOBAYASHI Shuji
2019-02-07Raise `NameError` for symbol struct access.Yukihiro "Matz" Matsumoto
2018-11-19Use type checking `mrb_to_str` instead of converting `mrb_str_to_str`.Yukihiro "Matz" Matsumoto
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.