Skip to content
  • Koichi Sasada's avatar
    478003f6
    rename absolute_path to realpath internally and introduce pathobj. · 478003f6
    Koichi Sasada authored
    * vm_core.h: rename absolute_path to realpath because it is expected name.
      external APIs (#absolute_path methods) are remained.
    
    * vm_core.h: remove rb_iseq_location_struct::path and
      rb_iseq_location_struct::absolute_path and introduce pathobj.
      if given path equals to given absolute_path (and most of case
      it is true), pathobj is simply given path String. If it is not same,
      pathobj is Array and pathobj[0] is path and pathobj[1] is realpath.
    
      This size optimization reduce 8 bytes and
      sizeof(struct rb_iseq_constant_body) is 200 bytes -> 192 bytes
      on 64bit CPU.
    
      To support this change, the following functions are introduced:
        * pathobj_path() (defined in vm_core.h)
        * pathobj_realpath() (ditto)
        * rb_iseq_path() (decl. in vm_core.h)
        * rb_iseq_realpath() (ditto)
        * rb_iseq_pathobj_new() (ditto)
        * rb_iseq_pathobj_set() (ditto)
    
    * vm_core.h (rb_binding_t): use pathobj instead of path. If binding
      is given at eval methods, realpath (absolute_path) was caller's
      realpath. However, they should use binding's realpath.
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    478003f6
    rename absolute_path to realpath internally and introduce pathobj.
    Koichi Sasada authored
    * vm_core.h: rename absolute_path to realpath because it is expected name.
      external APIs (#absolute_path methods) are remained.
    
    * vm_core.h: remove rb_iseq_location_struct::path and
      rb_iseq_location_struct::absolute_path and introduce pathobj.
      if given path equals to given absolute_path (and most of case
      it is true), pathobj is simply given path String. If it is not same,
      pathobj is Array and pathobj[0] is path and pathobj[1] is realpath.
    
      This size optimization reduce 8 bytes and
      sizeof(struct rb_iseq_constant_body) is 200 bytes -> 192 bytes
      on 64bit CPU.
    
      To support this change, the following functions are introduced:
        * pathobj_path() (defined in vm_core.h)
        * pathobj_realpath() (ditto)
        * rb_iseq_path() (decl. in vm_core.h)
        * rb_iseq_realpath() (ditto)
        * rb_iseq_pathobj_new() (ditto)
        * rb_iseq_pathobj_set() (ditto)
    
    * vm_core.h (rb_binding_t): use pathobj instead of path. If binding
      is given at eval methods, realpath (absolute_path) was caller's
      realpath. However, they should use binding's realpath.
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Loading