зеркало из https://github.com/github/ruby.git
* time.c (time_mload): add submicro into vtm.subsecx. [ruby-dev:40133]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
0f02abb31b
Коммит
1d674dc547
|
@ -1,3 +1,7 @@
|
|||
Fri Jan 22 21:05:34 2010 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* time.c (time_mload): add submicro into vtm.subsecx. [ruby-dev:40133]
|
||||
|
||||
Fri Jan 22 14:26:36 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* common.mk (rdoc): needs encodings and exts.
|
||||
|
|
|
@ -191,6 +191,13 @@ class TestTime < Test::Unit::TestCase
|
|||
assert_marshal_roundtrip(Time.at(0, 0.120))
|
||||
end
|
||||
|
||||
def test_marshal_nsec_191
|
||||
# generated by ruby 1.9.1p376
|
||||
m = "\x04\bIu:\tTime\r \x80\x11\x80@\xE2\x01\x00\x06:\rsubmicro\"\ax\x90"
|
||||
t = Marshal.load(m)
|
||||
assert_equal(Time.at(Rational(123456789, 1000000000)), t, "[ruby-dev:40133]")
|
||||
end
|
||||
|
||||
def test_marshal_rational
|
||||
assert_marshal_roundtrip(Time.at(0, Rational(1,3)))
|
||||
assert_not_match(/Rational/, Marshal.dump(Time.at(0, Rational(1,3))))
|
||||
|
|
2
time.c
2
time.c
|
@ -3780,6 +3780,7 @@ time_mload(VALUE time, VALUE str)
|
|||
int digit;
|
||||
ptr = (unsigned char*)StringValuePtr(submicro);
|
||||
len = RSTRING_LEN(submicro);
|
||||
nsec = 0;
|
||||
if (0 < len) {
|
||||
if (10 <= (digit = ptr[0] >> 4)) goto end_submicro;
|
||||
nsec += digit * 100;
|
||||
|
@ -3790,6 +3791,7 @@ time_mload(VALUE time, VALUE str)
|
|||
if (10 <= (digit = ptr[1] >> 4)) goto end_submicro;
|
||||
nsec += digit;
|
||||
}
|
||||
vtm.subsecx = add(vtm.subsecx, mulquo(LONG2FIX(nsec), INT2FIX(TIME_SCALE), LONG2FIX(1000000000)));
|
||||
end_submicro: ;
|
||||
}
|
||||
timexv = timegmxv(&vtm);
|
||||
|
|
Загрузка…
Ссылка в новой задаче