summaryrefslogtreecommitdiffstats
path: root/array.c
Commit message (Collapse)AuthorAgeFilesLines
* * eval.c (rb_method_node): new API to retrieve method body.matz2003-11-141-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_load): allow interrupt during loaded programmatz2003-11-061-6/+6
| | | | | | | | | | | | | | evaluation. [ruby-dev:21834] * hash.c (rb_hash_fetch): always warn if default argument and a block are supplied at the same time. [ruby-dev:21842] * hash.c (env_fetch): ditto. * array.c (rb_ary_fetch): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (read_all): fptr->f may be NULL, if IO is closed in thematz2003-11-041-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | signal handler. * io.c (io_read): ditto. * string.c (get_pat): remove 1.8.0 warning code. * string.c (rb_str_match): extend warning until 1.8.2. * string.c (rb_str_match2): ditto. * class.c (class_instance_method_list): remove 1.8.0 warnings. method_list now recurs. [ruby-dev:21816] * class.c (rb_obj_singleton_methods): ditto. * array.c (rb_ary_select): remove select with block. [ruby-dev:21824] * hash.c (rb_hash_select): ditto. * hash.c (env_select): ditto. * re.c (match_select): ditto. * struct.c (rb_struct_select): ditto. * process.c (check_uid_switch): remove duplicated error messages. * process.c (check_gid_switch): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (mark_frame_adj): need to adjust argv pointer if usingmatz2003-09-051-14/+13
| | | | | | | | | | | | system's alloca. [ruby-core:01503] * io.c (rb_f_gets): should call next_argv() before type check current_file. [ruby-list:38336] * eval.c (proc_invoke): should retrieve retval when pcall is true. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_call0): update ruby_class as well as ruby_cref.matz2003-08-061-3/+2
| | | | | | | | | | | | (ruby-bugs-ja PR#540) * eval.c (rb_yield_0): remove ruby_frame->cbase and unify to ruby_cref. [ruby-talk:78141] * eval.c: initialize /* OK */ variables by Qnil to stop warnings. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (BEGIN_CALLARGS): should not always reset ruby_iter,matz2003-08-011-7/+16
| | | | | | | | | | | | | | | | | | | need to restore previous value. [ruby-talk:77577] * array.c (rb_ary_fill): array length may be changed during the block execution. [ruby-talk:77579] * array.c (rb_ary_zip): ditto. * array.c (rb_ary_fill): ditto. * hash.c (env_reject_bang): length may be changed during the block execution. * hash.c (env_clear): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_collect): must get length of array for eachusa2003-07-311-4/+3
| | | | | | | | iteration. reported on [ruby-talk:77500], and fixed by K.Sasada <ko1@namikilab.tuat.ac.jp> on [ruby-talk:77504] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (tcp_s_gethostbyname): was usingmatz2003-07-251-4/+4
| | | | | | | | | uninitialized size_t value. [ruby-talk:76946] * Minor cleanups. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gcc -Wall clean-up.matz2003-07-241-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_values_at): extract common procedure frommatz2003-07-031-26/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rb_ary_values_at. follow DRY principle. * re.c (match_values_at): values_at should understand ranges. * struct.c (rb_struct_values_at): ditto. * struct.c (inspect_struct): inspect format changed; add "struct " at the top. * sprintf.c (rb_f_sprintf): "%p" specifier for inspect output. (RCR#68) * eval.c (rb_mod_undef_method): allow "undef_method" to accept multiple arguments. (RCR#146) * lib/timeout.rb: put timeout in Timeout module. (RCR#121) [ruby-talk:61028] * re.c (match_groups): new method added. (RCR#139) * variable.c (rb_mod_const_of): should exclude constant defined in Object, unless retrieving constants of Object. * string.c (rb_str_new4): do not allocate new string if original is frozen or already have copy-on-write entry. [ruby-talk:74940] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_unshift_m): need to check number of arguments.nobu2003-06-231-1/+6
| | | | | | | [ruby-talk:74189] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (ruby_cleanup): $SAFE is turned off in the finalization.matz2003-06-061-8/+42
| | | | | | | | | | | | | | | | | | Each END proc should preserve its own $SAFE level. [ruby-core:01119] * marshal.c (marshal_load): remove unused variable "hash". [ruby-core:01120] * hash.c (env_str_new): freeze strings from ENV. [ruby-talk:72860] * array.c (rb_ary_first): optional argument to retrieve first n elements. * array.c (rb_ary_last): optional argument to retrieve last n elements. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (push_values_at): Array#values_at should work withmatz2003-06-021-1/+26
| | | | | | | | | | | | ranges too. * range.c (rb_range_beg_len): length calculation was wrong. * eval.c (rb_call): should set T_ICLASS in the frame->last_class. [ruby-core:01110] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_yield_0): give warning for multiple values for amatz2003-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | block parameter. * eval.c (rb_yield_values): a function to yield multiple values. * array.c (sort_1): use rb_yield_values. * enum.c (min_ii, max_ii): ditto. * hash.c (rb_hash_update_block_i, delete_if_i, select_i, each_pair_i, env_each, env_reject_bang, env_select, env_update_i): ditto. * struct.c (rb_struct_each_pair): ditto. * eval.c (top_include): should include module in the current self, not ruby_top_self. [ruby-dev:20198] * eval.c (top_include): stop inclusion to ruby_wrapper; give warning. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/pty/pty.c (pty_finalize_syswait): join (using Thread#value)matz2003-05-191-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | before detach pid. [ruby-talk:71519] * eval.c (PUSH_FRAME): save outer ruby_block. [ruby-list:37677], [ruby-dev:20202] * eval.c (BEGIN_CALLARGS): restore outer block by using ruby_block->outer. * eval.c (block_pass): do not alter block->prev, but block->outer. * array.c (get_inspect_tbl): warning on wrong condition. * eval.c (localjump_xvalue): renamed exitstatus to exit_value since it's not exit "status" after all. * eval.c (localjump_error): add reason to LocalJumpError. * compar.c (rb_cmpint): raise error via rb_cmperr(), if cmp value is nil. now take new 2 arguments. * time.c (time_cmp): 2003-05-16 fix was incomplete. (ruby-bugs-ja:PR#458) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (init_copy): rename copy_object as initialize_copy,matz2003-05-191-1/+1
| | | | | | | | | | since it works as copy constructor. * eval.c (rb_add_method): initialize_copy should always be private, like initialize. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (get_inspect_tbl): check whether inspect_tbl value is amatz2003-05-191-8/+26
| | | | | | | | | | | | | | | | | valid array. (ruby-bugs-ja PR#65) * array.c (inspect_ensure,rb_protect_inspect,rb_inspecting_p): use get_inspect_tbl(). * eval.c (rb_f_abort): call exit(1) if exception is raised. This patch was made by Nobuyoshi Nakada <nobu.nokada@softhome.net> on 2002-05-30. (ruby-bugs-ja PR#236) * signal.c: disable Ruby's interrupt handler at the beginning. (ruby-bugs-ja PR#236) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_values_at): new method to replace select(index..).matz2003-05-041-16/+28
| | | | | | | | | | | | | | | | | | | | | | * hash.c (rb_hash_values_at,env_values_at): ditto. * re.c (match_values_at): ditto. * struct.c (rb_struct_values_at): ditto. * re.c (match_select): add iterator behavior. * ext/curses/curses.c, ext/digest/sha2/sha2.c, ext/iconv/iconv.c, ext/racc/cparse/cparse.c: include "ruby.h" at the top to shut up "_FILE_OFFSET_BITS redefined" warning on Solaris. * class.c (rb_class_protected_instance_methods): now gives warnings to show migration path. The default will be reversed on Jan 2004. * numeric.c (num_step): "1.1.step(1.5,0.1)" to work. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_str_ljust): now takes optional argument to specifymatz2003-05-021-10/+3
| | | | | | | | | | | | | | | | | | | | | | | pad string. [ruby-talk:70482] * string.c (rb_str_rjust): ditto. * string.c (rb_str_center): ditto. * string.c (rb_str_justify): utility function. * eval.c (rb_add_method): call singleton_method_added or method_added for every method definition (after ruby_running). [ruby-talk:70471] * array.c (rb_ary_reverse_bang): Array#reverse! should not return nil even for arrays sized less than 2. * io.c (argf_eof): should not block after reading all argument files. (ruby-bugs-ja PR#449) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* added some checks for request size.tadf2003-04-101-0/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (rb_f_missing): use "inspect" for T_OBJECT as well.matz2003-04-031-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_aref): give warning if index is a symbol.matz2003-03-041-0/+15
| | | | | | | | | [ruby-list:37217] * array.c (rb_ary_aset): raise TypeError if index is a symbol. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_to_a): return value should be an Array if thematz2003-02-101-1/+13
| | | | | | | | | | | | | | | | | | | | | receiver is an instance of subclass of Array. * string.c (rb_str_to_s): return value should be a String if the receiver is an instance of subclass of String. * eval.c (rb_call): calls method_missing when superclass method does not exist. * eval.c (rb_f_missing): now handles "no super" case. * object.c (rb_obj_ivar_get): Object#instance_variable_get: new method to get instance variable value without eval(). [new] * object.c (rb_obj_ivar_set): Object#instance_variable_set: new method to set instance variable value without eval(). [new] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* typonobu2003-02-041-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_equal): a == b is true when b is non T_ARRAYmatz2003-02-041-1/+6
| | | | | | | | | | | | | object, if b has "to_ary" and b == a. * hash.c (rb_hash_equal): a == b is true when b is non T_HASH object, if b has "to_hash" and b == a. * string.c (rb_str_equal): a == b is true when b is non T_STRING object, if b has "to_str" and b == a. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (Init_Object): default Object#=== now calls "=="matz2003-02-031-9/+2
| | | | | | | | | | | | | | | | | | internally. * re.c (rb_reg_initialize_m): should honor option status of original regexp. * array.c (rb_ary_equal): ary2 should be T_ARRAY (no to_ary conversion). * array.c (rb_ary_eql): ditto. * string.c (rb_str_equal): str2 should be T_STRING (no to_str conversion). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * re.c (rb_memsearch): algolithm body of String#index.matz2003-02-031-17/+17
| | | | | | | | | | | | | | | | * error.c (Init_Exception): "to_str" removed. * eval.c (eval): should not rely on Exception#to_str * eval.c (compile_error): ditto. * error.c (err_append): ditto. * hash.c (rb_hash_merge): Hash#merge, non destructive "update". now there's also Hash#merge! which is an alias to "update". git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Updated Copyrights of Matz to 2003.michal2003-01-161-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * range.c (range_each): treat fixnums specially to boost.matz2003-01-081-1/+1
| | | | | | | * numeric.c (num_step): remove rb_scan_args() for small speedup. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (env_clear): new Hash compatible method.matz2003-01-071-16/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hash.c (env_shift): ditto. * hash.c (env_invert): ditto. * hash.c (env_replace): ditto. * hash.c (env_update): ditto. * array.c (rb_ary_join): dispatch based on "to_str". * array.c (rb_ary_times): ditto. * array.c (rb_ary_equal): ditto. * process.c (rb_f_exec): dispatch based on "to_ary". * eval.c (umethod_bind): exact class match is not required. relax the restriction to subclasses. * eval.c (rb_eval): call "inherited" before executing class body. * class.c (rb_define_class): call "inherited" after defining the constant. * class.c (rb_define_class_under): ditto. * eval.c (massign): expand first element if RHS is an array and its size is 1, and LHS has concrete assignment target (i.e. LHS has target(s) other than *var). * eval.c (massign): avoid unnecessary avalue/svalue conversion. * eval.c (rb_yield_0): ditto * array.c (rb_ary_update): do not allocate unused array if rpl is nil (i.e. merely removing elements). * io.c (io_read): should resize supplied string if it's shorter than expected. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c (massign): removed awkward conversion between yvalue,matz2003-01-011-2/+1
| | | | | | | | | | | | | mvalue, etc. * eval.c (rb_yield_0): new parameter added to tell whether val is an array value or not. * parse.y (yield_args): restructuring: new nodes: NODE_RESTARY2, NODE_SVALUE; removed node: NODE_RESTARGS. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_transpose): Properly declare ary as a VALUE.knu2002-12-311-0/+1
| | | | | | | | | | | | * file.c (rb_file_s_chmod): Do not directly cast an int to void * to avoid a warning. * defines.h (FLUSH_REGISTER_WINDOWS): Add support for FreeBSD/sparc64. miniruby still coredumps in a different place, though. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (ary_alloc), dir.c (dir_s_alloc), eval.c (thgroup_s_alloc),usa2002-12-211-0/+1
| | | | | | | | | | | | | | | file.c (rb_stat_s_alloc), hash.c (hash_alloc), io.c (io_alloc), object.c (rb_module_s_alloc, rb_class_allocate_instance), re.c (match_alloc, rb_reg_s_alloc), string.c (str_alloc), time.c (time_s_alloc), ext/digest/digest.c (rb_digest_base_alloc), ext/tcltklib/tcltklib.c (ip_alloc), ext/win32ole/win32ole.c (fole_s_allocate, fev_s_allocate) : add prototype to get rid of VC++ warnings. * ext/sdbm/init.c (fsdbm_alloc): allocator takes only one argument. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (do_block): split "do" block and tLBRACE_ARG block.matz2002-12-201-5/+5
| | | | | | | | | | | | | | | | | * parse.y (cmd_brace_block): new tLBRACE_ARG block rule * parse.y (command): can take optional cmd_brace_block; use %prec to resolve shift/reduce conflict. (ruby-bugs-ja PR#372) * eval.c (ruby_finalize): trace_func should be cleared here (after executing exit procs and finalizers). * eval.c (rb_define_alloc_func): new allocation framework, based on Nobu's work [ruby-dev:19116]. "allocate" method is no longer used for object allocation. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_step): use DBL_EPSILON.matz2002-12-191-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * array.c (rb_check_array_type): new function: return an array (convert if possible), or nil. * string.c (rb_check_string_type): new function: return a string (convert if possible), or nil. * numeric.c (rb_dbl_cmp): returns nil if values are not comparable. * numeric.c (fix_cmp,flo_cmp): use rb_num_coerce_cmp() * bignum.c (rb_big_cmp): ditto. * numeric.c (rb_num_coerce_cmp): new coercing function for "<=>", which does not raise TypeError. * numeric.c (do_coerce): can be supress exception now. * object.c (rb_mod_cmp): should return nil for non class/module objects. * re.c (rb_reg_eqq): return false if the argument is not a string. now returns boolean value. * class.c (rb_include_module): argument should be T_MODULE, not T_class, nor T_ICLASS. * eval.c (is_defined): "defined?" should return "assignment" for attribute assignment (e.g. a.foo=b) and indexed assignment (e.g. a[2] = 44). * parse.y (aryset): use NODE_ATTRASGN. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * sprintf.c (rb_f_sprintf): preceding ".." for negative numbersmatz2002-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | still left; removed. * sprintf.c (rb_f_sprintf): should not prepend '0' if width > prec for example "%5.3d". * process.c (Init_process): add Process.exit and Process.abort * pack.c (utf8_to_uv): raise ArgumentError for malformed/redundant UTF-8 sequences. * process.c (last_status_set): add pid attribute to Process::Status. * pack.c (uv_to_utf8): limit maximum length of the encoded string to 6 bytes, even when the platform supports 8 bytes long integers. * pack.c (utf8_to_uv): do not decode sequences longer than 6 bytes. * object.c (copy_object): use "copy_object" method, not "become". git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_find_file_ext): should not terminate searching withmatz2002-11-221-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | empty path, just ignore. * dir.c: remove <sys/parm.h> inclusion. * compar.c (cmp_eq,cmp_gt,cmp_ge,cmp_lt,cmp_le): check using rb_cmpint(). * error.c (init_syserr): remove sys_nerr dependency. * numeric.c (num_cmp): added to satisfy Comparable assumption. * eval.c (rb_add_method): "initialize" should be public if it is a singleton method. * regex.c (re_match): avoid dereferencing if size == 0. (ruby-bugs-ja:PR#360) * time.c (time_cmp): should return nil if an operand is not a number nor time. (ruby-bugs-ja:PR#359) * file.c (rb_stat_cmp): should return nil if an operand is not File::Stat. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_zip): iterates over items in the receiver.matz2002-11-191-2/+43
| | | | | | | | | | | | zipped with nil if argument arrays are shorter. if arrays are longer, left items are ignored. now works with blocks. * enum.c (zip_i): changed for new behavior. * array.c (rb_ary_transpose): added. [new] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (Init_Object): added Object#object_id, new name formatz2002-11-031-0/+28
| | | | | | | | | | | | | | | | | | | Object#id. [new] * object.c (rb_obj_id_obsolete): give warning for Object#id. * numeric.c (fix_intern): added Fixnum#to_sym. [new] * object.c (sym_to_sym): rename from Symbol#intern * enum.c (enum_zip): added Enumerable#zip. [new] * array.c (rb_ary_zip): added Array#zip. * error.c (init_syserr): remove sys_nerr dependency. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * variable.c (rb_copy_generic_ivar): remove old generic instancematz2002-09-031-23/+15
| | | | | | | | | | variable table if it existes. * class.c (rb_make_metaclass): metaclass of a metaclass is a metaclass itself. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_ary_become): should not free ptr if it's shared.matz2002-08-291-1/+2
| | | | | | | | | | | * eval.c (rb_alias): prohibit making an alias named "allocate" if klass is a metaclass. * string.c (rb_string_value_ptr): StringValuePtr() should never return NULL pointer. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_find_file): $LOAD_PATH must not be empty.matz2002-08-271-35/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * file.c (rb_find_file_ext): ditto. * range.c (range_eq): class check should be based on range.class, instead of Range to work with Range.dup. * range.c (range_eql): ditto. * class.c (rb_mod_dup): need to preserve metaclass and flags. * object.c (rb_cstr_to_dbl): had a buffer overrun. * marshal.c (w_class): integrate singleton check into a funciton to follow DRY principle. * marshal.c (w_uclass): should check singleton method. * object.c (rb_obj_dup): dmark and dfree functions must be match for T_DATA type. * object.c (rb_obj_dup): class of the duped object must be match to the class of the original. * re.c (rb_reg_quote): do not escape \t, \f, \r, \n, for they are not regular expression metacharacters. * time.c (time_s_alloc): use time_free instead of free (null check, also serves for type mark). * time.c (time_s_at): check dfree function too. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array small opt. changes (ruby-core:355)michal2002-08-271-8/+8
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c: Mem optim for Array#selectmichal2002-08-231-1/+3
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c: Int vs Long #2michal2002-08-231-24/+21
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* *.c: Int vs Long cleanupmichal2002-08-211-6/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (sort_2): fatal typo.matz2002-08-191-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (sort_2): comparison should be done as signed long.matz2002-08-191-4/+4
| | | | | | | * array.c (sort_2): should return int, not VALUE. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (sort_2): *a - *b may overflow.matz2002-08-191-10/+13
| | | | | | | | | | | | | | | | * array.c (ary_new): len*sizeof(VALUE) may be a positive value. * array.c (rb_ary_initialize): ditto. * object.c (rb_class_allocate_instance): move singleton class check from rb_obj_alloc(). * re.c (rb_reg_initialize): should not modify frozen Regexp. * ext/tcltklib/tcltklib.c (ip_init): allocation framework. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_replace): should copy ifnone.matz2002-08-131-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hash.c (rb_hash_dup): should preserve HASH_PROC_DEFAULT and HASH_DELETED flags. * hash.c (rb_hash_shift): shift from empty hash should not return its default proc. * hash.c (rb_hash_default_proc): new method. [new] * array.c (rb_ary_aref): no need for Bignum check. * array.c (rb_ary_aset): explicit Bignum check removd. * numeric.c (fix_aref): normalize bignum before bit-op. * bignum.c (rb_big_rand): max may be Bignum zero. * bignum.c (rb_cstr_to_inum): should normalize bignums, to avoid returning fixable bignum value. * bignum.c (rb_uint2big): there should be no zero sized bignum. * ext/extmk.rb.in: extmake() that works properly for both tkutil (tk/tkutil.so) and digest/sha1. * hash.c (rb_hash_equal): should check HASH_PROC_DEFAULT too. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e