Skip to content

Commit

Permalink
symbol.c: rb_cstr_intern
Browse files Browse the repository at this point in the history
* symbol.c (rb_cstr_intern): new function to make Symbol object
  like as rb_str_intern() but from pointer to the name, its length
  and its encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
nobu committed Nov 8, 2015
1 parent bdc2876 commit 1803427
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
5 changes: 5 additions & 0 deletions internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -1129,6 +1129,11 @@ size_t rb_str_memsize(VALUE);
VALUE rb_sym_proc_call(VALUE args, VALUE sym, int argc, const VALUE *argv, VALUE passed_proc);
VALUE rb_sym_to_proc(VALUE sym);

/* symbol.c */
#ifdef RUBY_ENCODING_H
VALUE rb_cstr_intern(const char *ptr, long len, rb_encoding *enc);
#endif

/* struct.c */
VALUE rb_struct_init_copy(VALUE copy, VALUE s);

Expand Down
8 changes: 8 additions & 0 deletions symbol.c
Original file line number Diff line number Diff line change
Expand Up @@ -1013,6 +1013,14 @@ rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc)
return Qnil;
}

VALUE
rb_cstr_intern(const char *ptr, long len, rb_encoding *enc)
{
struct RString fake_str;
const VALUE name = rb_setup_fake_str(&fake_str, ptr, len, enc);
return rb_str_intern(name);
}

static ID
attrsetname_to_attr_id(VALUE name)
{
Expand Down

0 comments on commit 1803427

Please sign in to comment.