[前][次][番号順一覧][スレッド一覧]

ruby-changes:49752

From: normal <ko1@a...>
Date: Tue, 16 Jan 2018 15:36:10 +0900 (JST)
Subject: [ruby-changes:49752] normal:r61870 (trunk): timev.h: just use "unsigned int" for bitfields

normal	2018-01-16 15:36:05 +0900 (Tue, 16 Jan 2018)

  New Revision: 61870

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=61870

  Log:
    timev.h: just use "unsigned int" for bitfields
    
    There's no point in having separate types depending on C dialect
    when using bitfields, "unsigned int" bitfields are bitfields
    anywhere.
    
    Note: we also have test_memsize in test_time.rb in case
    users of other platforms want to enable size assertions
    if they don't trust their compiler.

  Modified files:
    trunk/timev.h
Index: timev.h
===================================================================
--- timev.h	(revision 61869)
+++ timev.h	(revision 61870)
@@ -1,29 +1,20 @@ https://github.com/ruby/ruby/blob/trunk/timev.h#L1
 #ifndef RUBY_TIMEV_H
 #define RUBY_TIMEV_H
 
-#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
-#define bits8_t uint8_t
-#define bits16_t uint16_t
-#else
-#define bits8_t unsigned int
-#define bits16_t unsigned int
-#endif
 PACKED_STRUCT_UNALIGNED(struct vtm {
     VALUE year; /* 2000 for example.  Integer. */
     VALUE subsecx; /* 0 <= subsecx < TIME_SCALE.  possibly Rational. */
     VALUE utc_offset; /* -3600 as -01:00 for example.  possibly Rational. */
     const char *zone; /* "JST", "EST", "EDT", etc. */
-    bits16_t yday:9; /* 1..366 */
-    bits8_t mon:4; /* 1..12 */
-    bits8_t mday:5; /* 1..31 */
-    bits8_t hour:5; /* 0..23 */
-    bits8_t min:6; /* 0..59 */
-    bits8_t sec:6; /* 0..60 */
-    bits8_t wday:3; /* 0:Sunday, 1:Monday, ..., 6:Saturday 7:init */
-    bits8_t isdst:2; /* 0:StandardTime 1:DayLightSavingTime 3:init */
+    unsigned int yday:9; /* 1..366 */
+    unsigned int mon:4; /* 1..12 */
+    unsigned int mday:5; /* 1..31 */
+    unsigned int hour:5; /* 0..23 */
+    unsigned int min:6; /* 0..59 */
+    unsigned int sec:6; /* 0..60 */
+    unsigned int wday:3; /* 0:Sunday, 1:Monday, ..., 6:Saturday 7:init */
+    unsigned int isdst:2; /* 0:StandardTime 1:DayLightSavingTime 3:init */
 });
-#undef bits8_t
-#undef bits16_t
 
 #define TIME_SCALE 1000000000
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]