Project

General

Profile

Actions

Feature #11435

closed

[RFC] iseq: implement memsize for wrapper

Added by normalperson (Eric Wong) over 8 years ago. Updated over 8 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:<unknown>]

Description

I noticed this was disabled in the recent refactoring.
This patch implementation seems to return smaller sizes
than I expected, so maybe that is the result of improvements
and moving data around or likely I missed something.

Only lightly checked, I'll check again another day/week
or someone else can look at it.


Files

Actions #1

Updated by ko1 (Koichi Sasada) over 8 years ago

It seems nice.
We can also add RUBY_TYPED_WB_PROTECTED.

BTW, I can change implementation of ISeq object in future.
But now, your patch is reasonable.

Actions #2

Updated by Anonymous over 8 years ago

  • Status changed from Open to Closed

Applied in changeset r51547.


iseq.c (iseq_memsize): reimplement for wrapper

  • iseq.c (iseq_memsize): reimplement for wrapper
    (param_keyword_size): extracted from iseq_memsize
    (iseqw_mark): new mark function
    (iseqw_data_type): new data type
    (iseqw_new): wrap as iseqw_data_type
    (iseqw_check): adjust for wrapper
    (Init_ISeq): remove iseqw_iseq_key initialization
  • test/objspace/test_objspace.rb: new test
    [ruby-core:70344] [Feature #11435]

v2 changes:

  • added RUBY_TYPED_WB_PROTECTED and write barrier
  • account for rb_call_info_kw_arg_t entries
Actions

Also available in: Atom PDF

Like0
Like0Like0