summaryrefslogtreecommitdiff
path: root/pack.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-16 12:59:26 (GMT)
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-16 12:59:26 (GMT)
commit50794b32227e0615a8468f8203e12d180b57442c (patch)
tree0712afabc1cc64d14cd216f7f36e2e61842ee5cd /pack.c
parentecabbf1bf606305bb553100700e1edb487604ecc (diff)
* bignum.c (bary_2comp): Extracted from get2comp.
(integer_unpack_num_bdigits): Extracted from rb_integer_unpack_internal. (bary_unpack_internal): Renamed from bary_unpack and support INTEGER_PACK_2COMP. (bary_unpack): New function to validate arguments and invoke bary_unpack_internal. (rb_integer_unpack_internal): Removed. (rb_integer_unpack): Invoke bary_unpack_internal. (rb_integer_unpack_2comp): Removed. * internal.h (rb_integer_unpack_2comp): Removed. * pack.c: Follow the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'pack.c')
-rw-r--r--pack.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/pack.c b/pack.c
index afb8d9c..8712afa 100644
--- a/pack.c
+++ b/pack.c
@@ -1731,9 +1731,8 @@ pack_unpack(VALUE str, VALUE fmt)
int flags = bigendian_p ? INTEGER_PACK_BIG_ENDIAN : INTEGER_PACK_LITTLE_ENDIAN;
VALUE val;
if (signed_p)
- val = rb_integer_unpack_2comp(s, integer_size, 1, 0, flags);
- else
- val = rb_integer_unpack(s, integer_size, 1, 0, flags);
+ flags |= INTEGER_PACK_2COMP;
+ val = rb_integer_unpack(s, integer_size, 1, 0, flags);
UNPACK_PUSH(val);
s += integer_size;
}