Commit graph

180 commits

Author SHA1 Message Date
matz
01137aa51a * object.c: Class#inherited RDoc added. a patch from Daniel
Berger <djberg96 at gmail.com>  [ruby-core:08942]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-13 09:25:15 +00:00
matz
efbd0e3b7d * object.c (rb_mod_cvar_defined): wrong id check. [ruby-core:09158]
* object.c (rb_mod_cvar_get): typo fixed.  [ruby-core:09168]

* object.c (rb_mod_cvar_set): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-12 15:35:50 +00:00
nobu
27f97827b1 * object.c (rb_obj_ivar_defined, rb_mod_cvar_defined): new methods,
Kernel#instance_variable_defined? and Module#class_variable_defined?.
  [ruby-dev:29587]

* lib/date/format.rb (Date::Bag#method_missing): use new method,
  instance_variable_defined? to check if an instance variable is
  defined.  fixed: [ruby-dev:29554]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-18 15:43:06 +00:00
matz
b6f0af7888 * string.c (rb_str_intern): raise SecurityError only when $SAFE
level is greater than zero.  [ruby-core:08862]

* parse.y (rb_interned_p): new function to check if a string is
  already interned.

* object.c (str_to_id): use rb_str_intern().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-14 07:25:56 +00:00
nobu
7b0c9cf2e2 * object.c (rb_cstr_to_dbl): limit out-of-range message.
* util.c (ruby_strtod): return end pointer even if ERANGE occurred.
  fixed: [ruby-dev:29041]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-18 01:55:15 +00:00
akr
6828bbeae0 * gc.c: align VALUE with sizeof(RVALUE) globally.
(is_pointer_to_heap): check alignment out of loop.
  (id2ref): avoid collision between symbols and objects.
  (rb_obj_id): ditto.  moved from object.c.
  [ruby-talk:178364] [ruby-core:7401]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-03-02 10:46:17 +00:00
akr
f7d72f1e65 precedes registering global VALUE variables before initializing it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12 03:36:49 +00:00
nobu
1cc1c2f77e * object.c (sym_inspect), parse.y (parser_yylex, rb_symname_p): check
if valid as a symbol name more strictly.  [ruby-dev:27478]

* test/ruby/test_symbol.rb: tests for [ruby-core:03573].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-22 04:09:24 +00:00
nobu
e594bf57d8 * class.c (rb_mod_init_copy, rb_class_init_copy), file.c (rb_stat_init_copy),
numeric.c (num_init_copy), object.c (rb_obj_init_copy, Init_Object),
  re.c (match_init_copy, rb_reg_init_copy), time.c (time_init_copy):
  undocumented.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-28 14:42:46 +00:00
matz
7b4486c877 * merged a patch from Takahiro Kambe <taca@back-street.net> to
support DragonFly BSD.  [ruby-dev:26984]

* object.c (rb_mod_cvar_get, rb_mod_cvar_set): document fix from
  sheepman <sheepman@sheepman.sakura.ne.jp>; a bug in visibility
  description.  [ruby-dev:26965]

* sprintf.c (rb_f_sprintf): warn "too many argument" on verbose
  mode (-v/-w); backported from 1.9.  [ruby-dev:26963]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-08 05:59:43 +00:00
nobu
2e37c7fe2f * object.c (rb_to_integer): argument constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-14 22:25:25 +00:00
matz
a12c1e4bd2 revered all LLP64 modifies due to portability reason.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-27 03:07:02 +00:00
matz
f933f9d3a5 * gc.c (id2ref): must not assign pointers to long int. use
LONG_LONG instead if SIZEOF_LONG < SIZEOF_VOIDP.
  [ruby-talk:149645]

* ruby.h: use LONG_LONG to simplify the change.
  [ruby-talk:149645]

* eval.c (rb_f_throw): replace all '0x%lx' by '%p'.
  [ruby-talk:149553]

* missing/vsnprintf.c (BSD_vfprintf): '%p' need to handle 64bit
  size pointer.  [ruby-talk:149553]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-27 02:42:16 +00:00
matz
bdb357e0d2 * error.c (syserr_initialize): add 1 byte for snprintf() size for
NUL at the end.  [ruby-dev:26574]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-19 14:59:01 +00:00
matz
5b7e24d744 * io.c (rb_io_inspect): replace sprintf() with "%s" format all
over the place by snprintf() to avoid integer overflow.

* sample/svr.rb: service can be stopped by ill-behaved client; use
  tsvr.rb instead.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-19 08:25:39 +00:00
matz
5dcba62289 * object.c (rb_mod_cvar_get): Module#class_variable_get(): back
ported from CVS HEAD.  [ruby-talk:144741]

* object.c (rb_mod_cvar_set): Module#class_variable_set().
  [ruby-talk:144741]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-07 08:41:55 +00:00
matz
1843d8abbc * struct.c (make_struct): allow const_id for accessor names.
[ruby-core:04585]

* eval.c (rb_attr): check if attribute name is local_id or
  const_id.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-11 01:11:52 +00:00
ocean
a658ebd5bc * object.c (str_to_id): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-16 13:23:51 +00:00
matz
be458259da * eval.c (rb_call0): reorganize "return" event post.
* object.c (str_to_id): warn for NUL containing strings.

* re.c (make_regexp): need to free internal regexp structure when
  compilation fails.  [ruby-talk:133228]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-16 09:26:38 +00:00
matz
88d5dcc8de * exception error messages updated. [ruby-core:04497]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-28 02:45:23 +00:00
matz
46c954bfda * lib/cgi.rb (CGI::Cookie): [ruby-talk:130040]
* object.c: [ruby-doc:818]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-08 00:51:16 +00:00
nobu
480d6b8afc * object.c (rb_class_superclass): superclass of singleton class also
should be a singleton class.  fixed: [ruby-list:40519]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-11 15:36:52 +00:00
matz
125514995c * dir.c (dir_open_dir): new function. [ruby-dev:25242]
* hash.c (Init_Hash): remove custom "hash" and "eql?".

* lib/set.rb (Set::eql): wrong definition.  [ruby-dev:25207]

* object.c (rb_obj_id_obsolete): warn always.

* eval.c (rb_enable_super): ditto.

* lib/set.rb (Set#==): [ruby-dev:25206]

* lib/pstore.rb (PStore#transaction): Use the empty content when a
  file is not found.  [ruby-dev:24561]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-18 02:07:31 +00:00
matz
379e85a5f5 * eval.c (proc_invoke): copy arguments to frame.argv.
[ruby-core:03861]

* object.c (convert_type): use rb_respond_to() again.
  [ruby-dev:25021]

* eval.c (rb_respond_to): funcall respond_to? if it's redefined.
  [ruby-dev:25021]

* io.c (rb_file_initialize): [ruby-dev:25032]

* lib/ostruct.rb (OpenStruct::Marshaler): OpenStruct can be
  marshaled again.  [ruby-core:03862]

* io.c (rb_io_ctl): [ruby-dev:25019]

* io.c (io_fread): need not to null terminate.  [ruby-dev:24998]

* io.c (read_all): remove unnecessary rb_str_resize().
  [ruby-dev:24996]

* io.c (io_read): ditto.

* io.c (rb_io_sysread): use temporary lock.  [ruby-dev:24992]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-03 09:30:33 +00:00
matz
f6348ca0ea * object.c (convert_type): [ruby-core:03845]
* eval.c (rb_funcall_rescue): new function.

* object.c (rb_Array): avoid using rb_respond_to().

* object.c (rb_Integer): ditto.

* eval.c (get_backtrace): no conversion for nil.

* parse.y (reduce_nodes): empty body should return nil.

* lib/cgi/session.rb (CGI::Session::initialize): [ruby-core:03832]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-29 06:13:52 +00:00
matz
ece87af00c * string.c (RESIZE_CAPA): check string attribute before modifying
capacity member of string structure.  [ruby-dev:24594]

* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
  performance.  [ruby-talk:117701]

* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
  arguments, unless (digit)$ style used.

* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
  performance.  [ruby-talk:117701]

* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
  arguments, unless (digit)$ style used.

* eval.c (frame_free): Guy Decoux solved the leak problem.
  Thanks.  [ruby-core:03549]

* ext/zlib/zlib.c (zstream_append_input): clear klass for z->input
  to avoid potential vulnerability.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-27 02:46:54 +00:00
matz
860bdc3b61 * io.c (read_all): block string buffer modification during
rb_io_fread() by freezing it temporarily. [ruby-dev:24479]

* dir.c (rb_push_glob): block call at once the end of method.
  [ruby-dev:24487]

* ext/enumerator/enumerator.c (enum_each_slice): remove
  rb_gc_force_recycle() to prevent potential SEGV.
  [ruby-dev:24499]

* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string
  buffer by clearing klass.  [ruby-dev:24510]

* ext/socket/socket.c (sock_s_getservbyaname): protocol string
  might be altered.  [ruby-dev:24503]

* string.c (rb_str_upto): check if return value from succ is a
  string.  [ruby-dev:24504]

* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to
  avoid mode string modification.  [ruby-dev:24454]

* io.c (rb_io_getline_fast): should take delim as unsigned char to
  distinguish EOF and '\377'.  [ruby-dev:24460]

* io.c (rb_io_getline): add check for RS modification.
  [ruby-dev:24461]

* enum.c (enum_sort_by): use qsort() directly instead using
  rb_iterate().  [ruby-dev:24462]

* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to
  prevent access to recycled object (via continuation for
  example).  [ruby-dev:24463]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-19 10:25:23 +00:00
nobu
f11f8e5e92 * intern.h, object.c (rb_class_inherited_p): export.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-18 23:54:34 +00:00
matz
6f9dcadf6e * string.c (rb_str_sum): check was done with false pointer.
[ruby-dev:24383]

* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]

* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
  sourcefile string modification.  [ruby-dev:24373]

* io.c (io_read): block string buffer modification during
  rb_io_fread() by freezing it temporarily. [ruby-dev:24366]

* io.c (rb_io_s_popen): mode argument may be altered.
  [ruby-dev:24375]

* file.c (rb_file_s_basename): ext argument may be altered.
  [ruby-dev:24377]

* enum.c (enum_sort_by): use NODE instead of 2 element arrays.
  [ruby-dev:24378]

* string.c (rb_str_chomp_bang): StringValue() may change the
  receiver.  [ruby-dev:24371]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-02 03:50:53 +00:00
usa
1e2ea43fe8 * object.c (nil_inspect): fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-13 01:22:31 +00:00
dave
eb5dddd6b2 Add RDoc for Module.included
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-30 12:51:06 +00:00
matz
c35afec197 * object.c (Init_Object): "===" calls rb_obj_equal() directly.
[ruby-list:39937]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-27 07:51:28 +00:00
ocean
99a04c1adf * class.c, error.c, eval.c, intern.h, object.c, variable.c:
do not set path if it is a singleton class.  [ruby-dev:22588]
  (backport from 1.9)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-15 11:42:51 +00:00
matz
68a117d8e2 * eval.c (rb_thread_atfork): remove "fork terminates thread"
warning.  [ruby-dev:

* object.c (rb_obj_clone): backport FL_FINALIZE patch from 1.9.
  [ruby-core:02786][ruby-core:03067]

* ext/socket/socket.c (sock_sockaddr): Socket#gethostbyname()
  should give us packed address, not struct sockaddr.
  [ruby-core:03053]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-24 23:31:29 +00:00
matz
36eb460780 * eval.c (rb_mod_freeze): prepare string representation before
freezing. [ruby-talk:103646]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-16 14:21:34 +00:00
nobu
3e0723af69 * object.c (rb_mod_le): singleton class inherits Class rather than its
object's class.  [ruby-dev:23690]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-16 07:04:48 +00:00
nobu
da011c8311 * array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
process.c, re.c, string.c: typos in RDoc comments.  [ruby-core:02783]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-14 04:06:52 +00:00
nobu
2d6308cceb * object.c (rb_obj_clone, rb_obj_dup): mentioned about
initialize_copy.  [ruby-core:02339]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-10 08:12:04 +00:00
dave
16b7b1fb95 Add explicit line breaks in method signatures for ri. Fixup some comments in object.c. Support changes comments for "in xxx.c"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-12 03:11:25 +00:00
eban
180de1b3f8 * eval.c, object.c, process.c, re.c: don't use C++ style comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-08 02:30:19 +00:00
dave
62cbbfb24b Finish documenting internal stuff. See Changelog for other details
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-02 06:01:12 +00:00
dave
6cd63a70f6 RDoc Struct and random
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-28 20:47:56 +00:00
dave
2d491003aa Add RDoc documentation for stuff in object.c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-28 06:33:07 +00:00
dave
3d60b36170 RDoc comments for Symbol
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-27 06:09:08 +00:00
nobu
65fed5dad3 * class.c (rb_mod_init_copy): always copy singleton class.
[ruby-dev:22325]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-22 12:15:34 +00:00
nobu
7c34e359a1 * class.c (rb_check_inheritable): new function. [ruby-dev:22316]
* intern.h: add prototype.

* eval.c (superclass): use rb_check_inheritable().

* object.c (rb_class_initialize): check argument validity.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-21 08:29:06 +00:00
dave
da99e407fb Add file.c comments (and necessary support in parse_c.rb)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-21 07:28:54 +00:00
dave
5076ed519b Document Class and Dir
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-19 15:18:09 +00:00
matz
aabecebd69 * eval.c (rb_exec_end_proc): should not clear end_procs and
ephemeral_end_procs before execution. [ruby-dev:22144]

* eval.c (rb_obj_extend): call Module#extended hook after
  extended_object.  [ruby-list:38866]

* object.c (Init_Object): Module#extended defined.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-05 05:54:00 +00:00
eban
d434a6973e * object.c (rb_class_s_alloc): add function prototype to avoid VC++
warning.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-08-13 07:13:45 +00:00