Commit graph

457 commits

Author SHA1 Message Date
usa
f0680bdee8 merge revision(s) 52856,52906: [Backport #11760]
* encoding.c (enc_m_loader): defer finding encoding object not to
	  be infected by marshal source.  [ruby-core:71793] [Bug #11760]

	* marshal.c (r_object0): enable compatible loader on USERDEF
	  class.  the loader function is called with the class itself,
	  instead of an allocated object, and the loaded data.

	* marshal.c (compat_allocator_table): intialize
	  compat_allocator_tbl on demand.

	* object.c (rb_undefined_alloc): extract from rb_obj_alloc.

	* marshal.c (compat_allocator_table): initialize


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@52933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 02:51:38 +00:00
nagachika
f3ac23e422 merge revision(s) r45375,r48260,r48320,r48746: [Backport #10526]
* complax.c: [DOC] Document number conversion of `nil` by @skade [fix GH-570] [ci skip]

	* object.c, rational.c: ditto.
	* object.c: fix document of Kernel.Stirng by @suzukaze
	  [fix GH-743][ci skip]

	* object.c (Module#const_defined?): [DOC] Revise the documentation.
	  Patch by Xavier Noria.
	  [Fixes GH-754] https://github.com/ruby/ruby/pull/754

	* object.c: [DOC] Revise documentation by Marcus Stollsteimer at
	  [ruby-core:66368].  [Bug #10526]
	  * #inspect: be more specific about generated string, remove
	    obsolete example.
	  * #nil?: use code examples instead of different call-seq's.
	  * #tap: clarify what is yielded.
	  * Integer(): be more specific about to_int and to_i, remove
	    reference to Ruby 1.8.
	  * Array(): fix error.
	  * Class: fix variable name style and indentation in example.
	  * improve consistency, fix typos and formatting.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@49367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-21 15:50:58 +00:00
nagachika
03a93ba48d merge revision(s) r47715: [Backport #10282]
* object.c (rb_class_real): do not dereference 0 VALUE

	* test/ruby/test_module.rb (test_inspect_segfault):
	  Test case and bug report by Thomas Stratmann.
	  [ruby-core:65214] [Bug #10282]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 15:28:55 +00:00
nagachika
4d238acd88 merge revision(s) r46501,r47372,r47460: [Backport #10191]
* object.c (rb_obj_copy_ivar): extract function to copy instance
	  variables only for T_OBJECT from init_copy.

	* object.c (rb_obj_copy_ivar): allocate no memory for empty
	  instance variables.  [ruby-core:64700] [Bug #10191]

	* test/ruby/test_object.rb: extend timeout.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 14:57:42 +00:00
nagachika
69eab6991a merge revision(s) r45179,r45564,r45565,r45584,r45585: [Backport #9721]
envutil.rb: move labeled_module and labeled_class

	* test/ruby/envutil.rb (labeled_module, labeled_class): move from
  test/ruby/test_module.rb.
	* proc.c (rb_method_call_with_block, umethod_bind): call with
	  IClass including the module for a module instance method.
	  [ruby-core:61936] [Bug #9721]

	* vm_insnhelper.c (vm_search_super_method): allow bound
	  UnboundMethod case.

	* proc.c (umethod_bind): use the ancestor iclass instead of new
	  iclass to get rid of infinite recursion, if the defined module
	  is already included.  [ruby-core:62014] [Bug #9721]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27 16:03:12 +00:00
naruse
72d18038d9 merge revision(s) 44525,44534,44537: [Backport #9381]
* hash.c (rb_objid_hash): return hash value from object ID with a
	  salt, extract from rb_any_hash().

	* object.c (rb_obj_hash): return same value as rb_any_hash().
	  fix r44125.  [ruby-core:59638] [Bug #9381]

	* hash.c (rb_any_hash): should treat the return value of rb_objid_hash()
	  as `long', because ruby assumes the object id of an object is `long'.
	  this fixes test failures on mswin64 introduced at r44525.

	* hash.c (rb_objid_hash): should return `long'.  brushup r44534.

	* object.c (rb_obj_hash): follow above change.
	  as `long', because ruby assumes the hash value of the object id of
	  an object is `long'.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@44846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-05 14:53:48 +00:00
tmm1
3409690957 ruby.h: swap iv_index_tbl and super for struct RClass
* include/ruby/ruby.h (struct RClass): add super, remove iv_index_tbl.
  since RCLASS_SUPER() is commonly used inside while loops, we move it
  back inside struct RClass to improve cache hits. this provides a
  small improvement (1%) in hotspots like rb_obj_is_kind_of()
* internal.h (struct rb_classext_struct): remove super, add
  iv_index_table
* internal.h (RCLASS_SUPER): update for new location
* internal.h (RCLASS_SET_SUPER): ditto
* internal.h (RCLASS_IV_INDEX_TBL): ditto
* object.c (rb_class_get_superclass): ditto
* include/ruby/backward/classext.h (RCLASS_SUPER): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-20 05:10:07 +00:00
nobu
a370556cd2 object.c: check const names
* object.c (rb_mod_const_get, rb_mod_const_defined): check
  constant names more strictly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 03:38:22 +00:00
nobu
241ca7bfff object.c: nested path const_defined?
* object.c (rb_mod_const_defined): support nested class path as
  well as const_get.  [Feature #7414]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:25:58 +00:00
nobu
a68c69d196 object.c: remove unnecessary assignment
* object.c (rb_mod_const_get): remove unnecessary assignment and
  set path together.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:24:47 +00:00
nobu
db318509d5 object.c: fix typo
* object.c (rb_mod_const_get): fix typo.  should use SYM2ID() not
  ID2SYM().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:24:35 +00:00
nobu
ae1a466401 object.c: fix r44189
* object.c (rb_mod_const_get): already interned junk name may be
  valid nested class path.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 02:11:37 +00:00
nobu
33fddfe585 object.c: optimize rb_mod_const_get for symbol
* object.c (rb_mod_const_get): Symbol must be the entire name, not
  a nested constant path, so achieve by its ID directly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-14 01:50:49 +00:00
tmm1
c2dcb947aa object.c: use RCLASS_M_TBL_WRAPPER for equality checks
* class.c (include_modules_at): use RCLASS_M_TBL_WRAPPER for
  equality checks. this avoids an unnecessary deference inside a tight
  loop, fixing a performance regression from r43973.
* object.c (rb_obj_is_kind_of): ditto.
* object.c (rb_class_inherited_p): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 23:19:02 +00:00
ktsj
40468b5bf1 * object.c: [DOC] document Module#singleton_class?.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 08:54:23 +00:00
nari
7e1f3c636b * object.c (rb_obj_clone): don't copy FL_WB_PROTECTED of a
original object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 14:14:09 +00:00
nari
53f1de2f49 * object.c (rb_obj_clone): Protect FL_PROMOTED and FL_WB_PROTECTED
flags of a destination object.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 11:24:11 +00:00
zzak
6869a65a8c * object.c: [DOC] Clarify Object#dup vs #clone [Bug #9128]
Moving existing doc for this comparison to separate section of #dup
  Adding examples to document behavior of #dup with Module#extend.
  Based on a patch by stevegoobermanhill


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 05:19:32 +00:00
ko1
42bd731dc5 * include/ruby/ruby.h: rename FL_OLDGEN to FL_PROMOTED.
This flag represents that "this object is promoted at least once."
* gc.c, debug.c, object.c: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-04 15:04:10 +00:00
zzak
ec9ec26430 * object.c: [DOC] Document first argument also takes string for:
rb_mod_const_get, rb_mod_const_set, rb_mod_const_defined

  Also added note about NameError exception for invalid constant name


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-24 03:48:54 +00:00
nobu
24cf72029f object.c: avoid inadvertent symbol creation
* object.c (id_for_attr): avoid inadvertent symbol creation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-09 14:57:04 +00:00
ktsj
36c4a3015f * object.c: [DOC] remove comment about trust/untrust.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-25 11:48:24 +00:00
ktsj
00b8bd5c87 * error.c, object.c, ext/readline/README.ja: [DOC] $SAFE=4 is obsolete.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-18 10:36:54 +00:00
nobu
944c620dfa object.c: undef Module#prepend_features on Class
* object.c (Init_Object): undef Module#prepend_features on Class, as
  well as Module#append_features.  [Fixes GH-376]
* test_class.rb: Added test for above. And ensure type checking
  on similar methods as module_function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-13 12:52:25 +00:00
nobu
a25d02b144 object.c: Module#singleton_class?
* object.c (rb_mod_singleton_p): new method Module#singleton_class? to
  return whether the receiver is a singleton class or not.
  [ruby-core:51087] [Feature #7609]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-08 14:01:23 +00:00
charliesome
5e98991f1b * object.c (rb_class_inherited_p): allow iclasses to be tested for
inheritance. [Bug #8686] [ruby-core:56174]

* test/ruby/test_method.rb: add test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-05 01:02:22 +00:00
eregon
59d1fc3615 * object.c (rb_obj_cmp): Improve doc for Kernel#<=>
to clarify #equal? is not called. [See GH-352]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-09 13:25:57 +00:00
hsbt
331f22cd30 Module extended doc by @PragTob [fixes GH-335]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-09 12:03:07 +00:00
knu
b0bc85f933 * object.c: Fix rdoc for Kernel#<=>. [Fix GH-352]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-09 07:02:06 +00:00
charliesome
3d8deb6e1b * object.c (rb_obj_equal): Fixed an rb_obj_equal documentation typo
where "a" was used instead of "obj".
  Fixes GH-349. Patch by @adnandoric

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-04 13:31:11 +00:00
ko1
87a120fbdc * class.c, include/ruby/ruby.h: add write barriers for T_CLASS,
T_MODULE, T_ICLASS.
* constant.h: constify rb_const_entry_t::value and file to detect
  assignment.
* variable.c, internal.h (rb_st_insert_id_and_value, rb_st_copy):
  added. update table with write barrier.
* method.h: constify some variables to detect assignment.
* object.c (init_copy): add WBs.
* variable.c: ditto.
* vm_method.c (rb_add_method): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-14 09:23:54 +00:00
shugo
1f828497d1 * safe.c (rb_set_safe_level, safe_setter): raise an ArgumentError
when $SAFE is set to 4.  $SAFE=4 is now obsolete.
  [ruby-core:55222] [Feature #8468]

* object.c (rb_obj_untrusted, rb_obj_untrust, rb_obj_trust):
  Kernel#untrusted?, untrust, and trust are now deprecated.
  Their behavior is same as tainted?, taint, and untaint,
  respectively.

* include/ruby/ruby.h (OBJ_UNTRUSTED, OBJ_UNTRUST): OBJ_UNTRUSTED()
  and OBJ_UNTRUST() are aliases of OBJ_TAINTED() and OBJ_TAINT(),
  respectively.

* array.c, class.c, debug.c, dir.c, encoding.c, error.c, eval.c,
  ext/curses/curses.c, ext/dbm/dbm.c, ext/dl/cfunc.c,
  ext/dl/cptr.c, ext/dl/dl.c, ext/etc/etc.c, ext/fiddle/fiddle.c,
  ext/fiddle/pointer.c, ext/gdbm/gdbm.c, ext/readline/readline.c,
  ext/sdbm/init.c, ext/socket/ancdata.c, ext/socket/basicsocket.c,
  ext/socket/socket.c, ext/socket/udpsocket.c,
  ext/stringio/stringio.c, ext/syslog/syslog.c, ext/tk/tcltklib.c,
  ext/win32ole/win32ole.c, file.c, gc.c, hash.c, io.c, iseq.c,
  load.c, marshal.c, object.c, proc.c, process.c, random.c, re.c,
  safe.c, string.c, thread.c, transcode.c, variable.c,
  vm_insnhelper.c, vm_method.c, vm_trace.c: remove code for
  $SAFE=4.

* test/dl/test_dl2.rb, test/erb/test_erb.rb,
  test/readline/test_readline.rb,
  test/readline/test_readline_history.rb, test/ruby/test_alias.rb,
  test/ruby/test_array.rb, test/ruby/test_dir.rb,
  test/ruby/test_encoding.rb, test/ruby/test_env.rb,
  test/ruby/test_eval.rb, test/ruby/test_exception.rb,
  test/ruby/test_file_exhaustive.rb, test/ruby/test_hash.rb,
  test/ruby/test_io.rb, test/ruby/test_method.rb,
  test/ruby/test_module.rb, test/ruby/test_object.rb,
  test/ruby/test_pack.rb, test/ruby/test_rand.rb,
  test/ruby/test_regexp.rb, test/ruby/test_settracefunc.rb,
  test/ruby/test_struct.rb, test/ruby/test_thread.rb,
  test/ruby/test_time.rb: remove tests for $SAFE=4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-12 14:20:51 +00:00
ayumin
aff64b9478 * object.c (rb_Hash): fix docs. patched by Stefan Schüßler.
[ruby-core:55299] [Bug #8487]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-04 14:47:33 +00:00
zzak
acae96deb7 * object.c, proc.c: s/call_seq/call-seq in rdoc. [Fix GH-322]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 07:04:33 +00:00
ko1
b8b26d05ce * object.c (rb_obj_clone): should not propagate OLDGEN status.
This propagation had caused WB miss for class.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23 18:01:46 +00:00
eregon
30f813ddf2 * object.c (rb_inspect): fix typo and error message
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-18 21:23:15 +00:00
ko1
4f401816ff * gc.c: support RGENGC. [ruby-trunk - Feature #8339]
See this ticet about RGENGC.
* gc.c: Add several flags:
* RGENGC_DEBUG: if >0, then prints debug information.
* RGENGC_CHECK_MODE: if >0, add assertions.
* RGENGC_PROFILE: if >0, add profiling features.
  check GC.stat and GC::Profiler.
* include/ruby/ruby.h: disable RGENGC by default (USE_RGENGC == 0).
* array.c: add write barriers for T_ARRAY and generate sunny objects.
* include/ruby/ruby.h (RARRAY_PTR_USE): added. Use this macro if
  you want to access raw pointers. If you modify the contents which
  pointer pointed, then you need to care write barrier.
* bignum.c, marshal.c, random.c: generate T_BIGNUM sunny objects.
* complex.c, include/ruby/ruby.h: add write barriers for T_COMPLEX
  and generate sunny objects.
* rational.c (nurat_s_new_internal), include/ruby/ruby.h: add write
  barriers for T_RATIONAL and generate sunny objects.
* internal.h: add write barriers for RBasic::klass.
* numeric.c (rb_float_new_in_heap): generate sunny T_FLOAT objects.
* object.c (rb_class_allocate_instance), range.c:
  generate sunny T_OBJECT objects.
* string.c: add write barriers for T_STRING and generate sunny objects.
* variable.c: add write barriers for ivars.
* vm_insnhelper.c (vm_setivar): ditto.
* include/ruby/ruby.h, debug.c: use two flags
  FL_WB_PROTECTED and FL_OLDGEN.
* node.h (NODE_FL_CREF_PUSHED_BY_EVAL, NODE_FL_CREF_OMOD_SHARED):
  move flag bits.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-13 18:07:47 +00:00
ko1
83aba04862 * include/ruby/ruby.h: constify RBasic::klass and add
RBASIC_CLASS(obj) macro which returns a class of `obj'.
  This change is a part of RGENGC branch [ruby-trunk - Feature #8339].
* object.c: add new function rb_obj_reveal().
  This function reveal interal (hidden) object by rb_obj_hide().
  Note that do not change class before and after hiding.
  Only permitted example is:
  klass = RBASIC_CLASS(obj);
  rb_obj_hide(obj);
  ....
  rb_obj_reveal(obj, klass);
  TODO: API design. rb_obj_reveal() should be replaced with others.
  TODO: modify constified variables using cast may be harmful for
  compiler's analysis and optimizaton.
  Any idea to prohibt inserting RBasic::klass directly?
  If rename RBasic::klass and force to use RBASIC_CLASS(obj),
  then all codes such as `RBASIC(obj)->klass' will be
  compilation error. Is it acceptable? (We have similar
  experience at Ruby 1.9,
  for example "RARRAY(ary)->ptr" to "RARRAY_PTR(ary)".
* internal.h: add some macros.
* RBASIC_CLEAR_CLASS(obj) clear RBasic::klass to make it internal
  object.
* RBASIC_SET_CLASS(obj, cls) set RBasic::klass.
* RBASIC_SET_CLASS_RAW(obj, cls) same as RBASIC_SET_CLASS
  without write barrier (planned).
* RCLASS_SET_SUPER(a, b) set super class of a.
* array.c, class.c, compile.c, encoding.c, enum.c, error.c, eval.c,
  file.c, gc.c, hash.c, io.c, iseq.c, marshal.c, object.c,
  parse.y, proc.c, process.c, random.c, ruby.c, sprintf.c,
  string.c, thread.c, transcode.c, vm.c, vm_eval.c, win32/file.c:
  Use above macros and functions to access RBasic::klass.
* ext/coverage/coverage.c, ext/readline/readline.c,
  ext/socket/ancdata.c, ext/socket/init.c,
* ext/zlib/zlib.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-13 10:49:11 +00:00
ko1
b6b85f6eaf * object.c (rb_obj_setup): added.
* include/ruby/ruby.h (OBJSETUP): ues rb_obj_setup() instead of
  a macro.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-13 06:33:48 +00:00
nobu
a58c224dcf object.c: skip prepending modules
* object.c (rb_obj_is_kind_of): skip prepending modules.
  [ruby-core:54742] [Bug #8357]
* object.c (rb_class_inherited_p): ditto.
  [ruby-core:54736] [Bug #8357]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-02 14:23:56 +00:00
nobu
97982e823f id.def: predefined IDs
* defs/id.def: add more predefined IDs used in core.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-02 07:54:17 +00:00
zzak
9ef25d883d * object.c: With feedback from Steve Klabnik, reverted a change to
#untrusted? and #tainted?. Also adjusted grammar for $SAFE levels


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-28 01:35:56 +00:00
zzak
6fe3e9e488 * object.c: Documentation for taint and trust [Bug #8162]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-28 00:51:46 +00:00
nobu
f507cce021 object.c: extract common code
* object.c (id_for_setter): extract common code from const, class
  variable, instance variable setters.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-08 14:57:29 +00:00
naruse
ae13ab2466 * object.c (rb_obj_ivar_set): call to_str for string only once.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-08 03:05:15 +00:00
naruse
6cb682a480 * object.c (rb_mod_const_set): call to_str for string only once.
to_str was called from rb_is_const_name and rb_to_id before.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-07 12:28:21 +00:00
naruse
d9ff5c2230 * object.c (rb_mod_cvar_set): call to_str for string only once.
to_str was called from rb_is_class_name and rb_to_id before.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-07 12:18:26 +00:00
nobu
672b8bf1c0 object.c: avoid inadvertent symbol creation
* object.c (rb_mod_cvar_set): fix typo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-04 21:36:38 +00:00
akr
a4587840cc * object.c (rb_mod_cvar_set): Reverted "avoid inadvertent
symbol creation" to avoid SEGV by
  Class.new.class_variable_set(1, 2).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-04 13:26:39 +00:00
nobu
5e2c39ed22 object.c: avoid inadvertent symbol creation
* object.c (rb_mod_const_set): fix symbol name check.
  (rb_obj_ivar_set): ditto.
  (rb_mod_cvar_set): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-04 08:18:54 +00:00