diff options
author | 卜部昌平 <shyouhei@ruby-lang.org> | 2020-07-02 09:44:23 +0900 |
---|---|---|
committer | 卜部昌平 <shyouhei@ruby-lang.org> | 2020-07-02 14:34:30 +0900 |
commit | bf3f03c9258dab45fee891007c7806f2d095db09 (patch) | |
tree | e0ad1fc433c9afdfab7615a003eb718800b1f09b /integer.rb | |
parent | 49029811d998d919c1f31f39e7a4b82f42ff3eaa (diff) | |
download | ruby-bf3f03c9258dab45fee891007c7806f2d095db09.tar.gz |
integer.rbinc: do not generate C functions
This changeset changes for instance Integer#integer? from:
== disasm: #<ISeq:to_i@<internal:integer>:66 (66,2)-(69,5)> (catch: FALSE)
0000 opt_invokebuiltin_delegate_leave <builtin!_bi7/0>, 0 (68)[LiCa]
0003 leave (69)[Re]
to:
== disasm: #<ISeq:to_i@<internal:integer>:66 (66,2)-(69,5)> (catch: FALSE)
0000 putself (68)[LiCa]
0001 leave (69)[Re]
which is of course faster.
Diffstat (limited to 'integer.rb')
-rw-r--r-- | integer.rb | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/integer.rb b/integer.rb index a9e27345f4..daf11b088f 100644 --- a/integer.rb +++ b/integer.rb @@ -23,8 +23,7 @@ class Integer # # Since +int+ is already an Integer, this always returns +true+. def integer? - Primitive.attr! 'inline' - Primitive.cexpr! 'Qtrue' + return true end def magnitude @@ -53,8 +52,7 @@ class Integer # # For example, <code>?a.ord</code> returns 97 both in 1.8 and 1.9. def ord - Primitive.attr! 'inline' - Primitive.cexpr! 'self' + return self end # call-seq: @@ -64,8 +62,7 @@ class Integer # # #to_int is an alias for #to_i. def to_i - Primitive.attr! 'inline' - Primitive.cexpr! 'self' + return self end # call-seq: @@ -73,8 +70,7 @@ class Integer # # Since +int+ is already an Integer, returns +self+. def to_int - Primitive.attr! 'inline' - Primitive.cexpr! 'self' + return self end # call-seq: |