Skip to content

Commit

Permalink
Fixed a segmentation fault in Array .le, .lt, .gt and .ge met…
Browse files Browse the repository at this point in the history
…hods.
  • Loading branch information
trizen committed Sep 3, 2023
1 parent 9b4e946 commit 5d543a8
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
8 changes: 4 additions & 4 deletions lib/Sidef/Types/Array/Array.pm
Original file line number Diff line number Diff line change
Expand Up @@ -876,28 +876,28 @@ package Sidef::Types::Array::Array {

sub lt {
my ($self, $array) = @_;
Math::GMPz::Rmpz_sgn(${$self->cmp($array)}) < 0
$self->cmp($array)->lt(Sidef::Types::Number::Number::ZERO)
? Sidef::Types::Bool::Bool::TRUE
: Sidef::Types::Bool::Bool::FALSE;
}

sub le {
my ($self, $array) = @_;
Math::GMPz::Rmpz_sgn(${$self->cmp($array)}) <= 0
$self->cmp($array)->le(Sidef::Types::Number::Number::ZERO)
? Sidef::Types::Bool::Bool::TRUE
: Sidef::Types::Bool::Bool::FALSE;
}

sub gt {
my ($self, $array) = @_;
Math::GMPz::Rmpz_sgn(${$self->cmp($array)}) > 0
$self->cmp($array)->gt(Sidef::Types::Number::Number::ZERO)
? Sidef::Types::Bool::Bool::TRUE
: Sidef::Types::Bool::Bool::FALSE;
}

sub ge {
my ($self, $array) = @_;
Math::GMPz::Rmpz_sgn(${$self->cmp($array)}) >= 0
$self->cmp($array)->ge(Sidef::Types::Number::Number::ZERO)
? Sidef::Types::Bool::Bool::TRUE
: Sidef::Types::Bool::Bool::FALSE;
}
Expand Down
13 changes: 13 additions & 0 deletions scripts/Tests/arrays.sf
Original file line number Diff line number Diff line change
Expand Up @@ -200,4 +200,17 @@ assert_eq(["C", "S", "D"].ft(-2,2), ["S","D"])
assert_eq(%w(a b c).ft(-2, -1), ["b", "c"])
assert_eq(%w(a b c).ft(-2, -2), ["b"])

assert([1,2,3,4].lt([1,2,3,5]))
assert([1,2,3].le([1,2,3]))
assert(![1,2,4].le([1,2,3]))
assert(![1,2,4].lt([1,2,3]))
assert([1,2,4].ge([1,2,3]))
assert([1,2,4].gt([1,2,3]))
assert([1,2,3].ge([1,2,3]))

assert([].le)
assert([].ge)
assert(![].lt)
assert(![].gt)

say "** Test passed!"

0 comments on commit 5d543a8

Please sign in to comment.