summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-struct
AgeCommit message (Collapse)Author
2020-06-20Add `mrb_get_arg1()` that retrieves single (and only) argument.Yukihiro "Matz" Matsumoto
`mrb_get_arg1()` raises `ArgumentError` if the method does not receive one argument. And replaces all `mrb_get_args(mrb, "o", &arg)` by the new function.
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-10-29Remove unneeded `Array` creation in `Struct#_inspect`KOBAYASHI Shuji
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-07-17Merge branch 'master' into i110/inspect-recursionYukihiro "Matz" Matsumoto
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-28Commented out "Struct.new removes existing constant" testKOBAYASHI Shuji
Because this test is always skipped.
2019-04-09Extract frozen checking to functionKOBAYASHI Shuji
2019-03-19Use `FrozenError` instead of `RuntimeError` in frozen object modification testKOBAYASHI Shuji
2019-02-24Move `Object#dig` to `Struct#dig`Wataru Ashihara
This method seems to be mistakenly put into `Object` instead of `Struct` since it's in `struct.rb` and daf83946b says: add #dig to Array,Hash and Struct
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`.
2018-06-04Let inspect recursion do the right thingIchito Nagata
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-30add a test for #3296Yukihiro "Matz" Matsumoto
2016-11-30should not refer Struct class by name; fix #3296Yukihiro "Matz" Matsumoto
2016-11-25stop warnings in the test; ref #3280Yukihiro "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-22Add regression testksss
2016-07-22Should not define to `Struct` classksss
2016-03-23add #dig testsYukihiro "Matz" Matsumoto