An error occurred fetching the project authors.
  1. 12 Oct, 2020 10 commits
  2. 24 Jun, 2020 1 commit
  3. 20 Jun, 2020 1 commit
  4. 05 Jun, 2020 1 commit
    • Yukihiro "Matz" Matsumoto's avatar
      Squashed commit of the following: · f1523d24
      Yukihiro "Matz" Matsumoto authored
      commit 2d7d545c4c4bfce7fdcbcbe9baaeb437915742f0
      Merge: 625a1249 b178914b
      Author: Yukihiro "Matz" Matsumoto <matz@ruby.or.jp>
      Date:   Fri Jun 5 14:35:13 2020 +0900
      
          Merge branch 'fix-mrb_open-with-nomem' of https://github.com/dearblue/mruby into dearblue-fix-mrb_open-with-nomem
      
      commit b178914b111dda79a8f36ec4eb3e9d37b76f982e
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sat Jan 19 22:22:44 2019 +0900
      
          Fix invalid pointer free inside other heap's block
      
           1. `e = mrb_obj_alloc(...)`
           2. `e->stack = mrb->c->stack` (`mrb->c->stack` is anywhere in the range `stbase...stend`)
           3. And raised exception by `mrb_malloc()`!
           4. `mrb_free(e->stack)` by GC part (wrong free)
      
      commit 52e3d5d8585daf86af3ed12db5ab0efefbc9b956
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sat Jan 19 21:55:36 2019 +0900
      
          Fix memory leak for temporary symbols when out of memory
      
      commit 4c5499b88e47cc6012ad7d7379cb6bc74c6a0b60
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 11:42:07 2019 +0900
      
          Fix uninitialized pointer dereference for debug section
      
      commit 8e993167dec62a9709d6faacd517729ddcedf4f9
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 11:41:09 2019 +0900
      
          Fix memory leak for temporary filenames when out of memory
      
      commit 8b422577e6eae68a28121b88421d937e8707b487
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 10:57:51 2019 +0900
      
          Fix memory leak for irep when out of memory
      
      commit 6b35ebf49a0aa3edb6bbda770ed58681e9c2e6af
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 10:55:50 2019 +0900
      
          Fix uninitialized pointer dereference when do not finished initializing irep
      
      commit 2531f2631e67e0462749618e2344c733a29238f0
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 10:48:15 2019 +0900
      
          Fix NULL pointer dereference when do not finished initializing irep
      
      commit e2d6896ebad13694800af49c2625e106b8440ddf
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sat Jan 19 12:54:19 2019 +0900
      
          Fix memory leak for irep when out of memory by `mrb_proc_new()`
      
      commit b6214ff8a0a1c73bc9554e39053878ac50bb683f
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sat Jan 19 12:53:07 2019 +0900
      
          Fix memory leak for `khash_t` in `kh_init_size()` when out of memory by `kh_alloc()`
      
      commit 19162dd6c11f0093d0011e7cab83b8f9e84c2c07
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 02:15:07 2019 +0900
      
          Fix memory leak for symbol string when out of memory in `kh_put()`
      
      commit 15e67297ff54bc14ef359d6d1e745d760a4a255a
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 02:12:24 2019 +0900
      
          Fix keep wrong symbol index when out of memory
      
      commit 3f8e2b375244f5441e8d62efa13c6e6a9afecb14
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 02:08:13 2019 +0900
      
          Fix keep wrong symbol capacity when out of memory
      
      commit a3cfe755ab3e758046c3f4e30938ac8d567ed046
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sat Jan 19 10:11:37 2019 +0900
      
          Fix NULL pointer dereference `mrb->c` by `mark_context()`
      
      commit d9c7b6be6eb54630b64eea5c35be241e551676e5
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 15:25:09 2019 +0900
      
          Fix protect exception for print error message
      
      commit 100642750e4d549f2e8050f8d6cabdf8825d4495
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 11:59:02 2019 +0900
      
          Protect exception for mruby core initialization
      
      commit 7a0418304ec70764fa215bef3599f5f735222075
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Fri Jan 18 20:38:27 2019 +0900
      
          Fix memory leak for string object when out of memory
      
          The `mrb_str_pool()` function has a path to call `malloc()` twice.
      
          If occurs `NoMemoryError` exception in second `malloc()`,
          first `malloc()` pointer is not freed.
      
      commit fef1c152ce4e52b9e4a34dc23aca5b02907ac639
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sat Jan 19 13:05:09 2019 +0900
      
          Fix stack overflow when out of memory
      
          As a result of this change, no backtrace information is set
          for NoMemoryError (`mrb->nomem_err`).
      
          Detailes:
      
          When generating a backtrace, called `mrb_intern_lit()`,
          `mrb_str_new_cstr()` and `mrb_obj_iv_set()` function with
          `exc_debug_info()` function in `src/error.c`.
      
          If a `NoMemoryError` exception occurs at this time,
          the `exc_debug_info()` function will be called again,
          and in the same way `NoMemoryError` exception raised will result
          in an infinite loop to occurs stack overflow (and SIGSEGV).
      
      commit da7d7f881bbbad9988a3a2b7bad8f2b72ff06bc6
      Author: dearblue <dearblue@users.noreply.github.com>
      Date:   Sun Jan 20 12:00:38 2019 +0900
      
          Fix NULL pointer dereference `mrb->nomem_err` when not initialized
      
          Add internal functions (not `static`):
      
            * `mrb_raise_nomemory()`
            * `mrb_core_init_abort()`
      Unverified
      f1523d24
  5. 26 Sep, 2019 1 commit
  6. 18 Sep, 2019 1 commit
    • Yukihiro "Matz" Matsumoto's avatar
      Fix `super` from aliased methods to work correctly; fix #4718 · ca2d47c2
      Yukihiro "Matz" Matsumoto authored
      We needed to preserve the original method name somewhere. We kept it in
      the `env` structure pointed from aliased methods. #1457 and #1531 tried
      to address this issue. But this patch is more memory efficient.
      
      Limitation: this fix does not support `super` from methods defined by
      `define_method`. This limitation may be addressed in the future, but
      it's low priority.
      ca2d47c2
  7. 16 Sep, 2019 1 commit
  8. 18 Aug, 2019 1 commit
  9. 05 Aug, 2019 1 commit
    • KOBAYASHI Shuji's avatar
      Use new specifiers/modifiers of `mrb_vfromat()` · 334afb16
      KOBAYASHI Shuji authored
      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.
      334afb16
  10. 06 Apr, 2019 1 commit
  11. 04 Apr, 2019 1 commit
  12. 24 Mar, 2019 1 commit
  13. 02 Nov, 2018 1 commit
  14. 30 Jul, 2018 1 commit
  15. 20 Dec, 2017 1 commit
  16. 20 Nov, 2017 1 commit
    • Yukihiro "Matz" Matsumoto's avatar
      Add `MRB_METHOD_TABLE_INLINE` option. · 8f2c6240
      Yukihiro "Matz" Matsumoto authored
      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.
      8f2c6240
  17. 27 Oct, 2017 1 commit
    • Yukihiro "Matz" Matsumoto's avatar
      Heavily refactored how lexical scope links are implemented; fix #3821 · 93f5f225
      Yukihiro "Matz" Matsumoto authored
      Instead of `irep` links, we added a `upper` link to `struct RProc`.
      To make a space for the `upper` link, we moved `target_class` reference.
      If a `Proc` does not have `env`, `target_class` is saved in an `union`
      shared with `env` (if a `Proc` has env, you can tell it by `MRB_PROC_ENV_P()).
      Otherwise `target_class` is referenced from `env->c`. We removed links
      in `env` as well.
      
      This change removes 2 members from `mrb_irep` struct, thus saving 2
      words per method/proc/block. This also fixes potential memory leaks
      due to the circular references caused by a link from `mrb_irep`.
      93f5f225
  18. 27 Sep, 2017 1 commit
  19. 31 Aug, 2017 1 commit
  20. 30 Aug, 2017 1 commit
  21. 01 Aug, 2017 1 commit
  22. 22 Apr, 2017 1 commit
  23. 13 Apr, 2017 1 commit
  24. 03 Apr, 2017 1 commit
  25. 22 Dec, 2016 1 commit
  26. 21 Dec, 2016 1 commit
  27. 02 Dec, 2016 1 commit
  28. 24 Nov, 2016 1 commit
  29. 25 Sep, 2016 1 commit
    • Kouhei Sutou's avatar
      Remove needless MRB_API · 91bd3ebd
      Kouhei Sutou authored
      ref #3215
      
      If a function (such as mrb_read_irep_file()) is declared without MRB_API
      in header file (such as include/mruby/dump.h), implementation of the
      function in source file (such as src/load.c) should also defined without
      MRB_API.
      
      If MRB_API is mismatch, Visual C++ reports link error with C2375 error
      code: https://msdn.microsoft.com/en-us/library/5k6kw95a.aspx
      91bd3ebd
  30. 27 Nov, 2015 1 commit
  31. 29 Jun, 2015 1 commit
    • Kouhei Sutou's avatar
      Fix a crash bug when GC is ran while creating a proc with env · 52db92de
      Kouhei Sutou authored
      mrb_proc_new_cfunc_with_env() allocates RProc with RProc::env as NULL
      then allocates REnv and sets it to RProc::env of the allocated RProc. If
      incremental GC is ran before "allocates REnv and sets it to RProc::env
      of the allocated RProc", the allocated RProc's GC status is
      "marked" (Black) and the allocated REnv's GC status is
      "unmarked" (White). The next incremental GC sweeps the allocated REnv
      without re-marking the allocated RProc. Because the RProc is Black and
      the REnv is White.
      
      We need to implement write barrier for the case.
      
      We can force to cause the above situation by the following patch:
      
          diff --git a/src/proc.c b/src/proc.c
          index f98998f..4f4e25c 100644
          --- a/src/proc.c
          +++ b/src/proc.c
          @@ -92,6 +92,7 @@ mrb_proc_new_cfunc_with_env(mrb_state *mrb, mrb_func_t func, mrb_int argc, const
             struct REnv *e;
             int i;
      
          +  mrb_incremental_gc(mrb);
             p->env = e = env_new(mrb, argc);
             MRB_ENV_UNSHARE_STACK(e);
             e->stack = (mrb_value*)mrb_malloc(mrb, sizeof(mrb_value) * argc);
      
      With this patch, "rake test" causes segmentation fault.
      52db92de