nitlanguage
/
nit.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4bb08a7
)
lib/std: add fast implementation for Array::==
author
Jean Privat
<jean@pryen.org>
Fri, 8 Aug 2014 17:23:13 +0000
(13:23 -0400)
committer
Jean Privat
<jean@pryen.org>
Fri, 8 Aug 2014 17:23:13 +0000
(13:23 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>
lib/standard/collection/array.nit
patch
|
blob
|
history
diff --git
a/lib/standard/collection/array.nit
b/lib/standard/collection/array.nit
index
0d69ed6
..
0a5ba22
100644
(file)
--- a/
lib/standard/collection/array.nit
+++ b/
lib/standard/collection/array.nit
@@
-342,6
+342,22
@@
class Array[E]
# The size of `_items`.
var _capacity: Int = 0
+
+ redef fun ==(o)
+ do
+ if not o isa Array[nullable Object] then return super
+ # Efficient implementation
+ var l = length
+ if l != o.length then return false
+ var i = 0
+ var it = _items
+ var oit = o._items
+ while i < l do
+ if it[i] != oit[i] then return false
+ i += 1
+ end
+ return true
+ end
end
# An `Iterator` on `AbstractArray`