OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 const char* OS::LocalTimezone(double time) { | 118 const char* OS::LocalTimezone(double time) { |
119 if (isnan(time)) return ""; | 119 if (isnan(time)) return ""; |
120 time_t tv = static_cast<time_t>(floor(time/msPerSecond)); | 120 time_t tv = static_cast<time_t>(floor(time/msPerSecond)); |
121 struct tm* t = localtime(&tv); | 121 struct tm* t = localtime(&tv); |
122 if (NULL == t) return ""; | 122 if (NULL == t) return ""; |
123 return tzname[0]; // The location of the timezone string on Solaris. | 123 return tzname[0]; // The location of the timezone string on Solaris. |
124 } | 124 } |
125 | 125 |
126 | 126 |
127 double OS::LocalTimeOffset() { | 127 double OS::LocalTimeOffset() { |
128 // On Solaris, struct tm does not contain a tm_gmtoff field. | 128 tzset(); |
129 time_t utc = time(NULL); | 129 return -static_cast<double>(timezone * msPerSecond); |
130 ASSERT(utc != -1); | |
131 struct tm* loc = localtime(&utc); | |
132 ASSERT(loc != NULL); | |
133 return static_cast<double>((mktime(loc) - utc) * msPerSecond); | |
134 } | 130 } |
135 | 131 |
136 | 132 |
137 // We keep the lowest and highest addresses mapped as a quick way of | 133 // We keep the lowest and highest addresses mapped as a quick way of |
138 // determining that pointers are outside the heap (used mostly in assertions | 134 // determining that pointers are outside the heap (used mostly in assertions |
139 // and verification). The estimate is conservative, i.e., not all addresses in | 135 // and verification). The estimate is conservative, i.e., not all addresses in |
140 // 'allocated' space are actually allocated to our heap. The range is | 136 // 'allocated' space are actually allocated to our heap. The range is |
141 // [lowest, highest), inclusive on the low and and exclusive on the high end. | 137 // [lowest, highest), inclusive on the low and and exclusive on the high end. |
142 static void* lowest_ever_allocated = reinterpret_cast<void*>(-1); | 138 static void* lowest_ever_allocated = reinterpret_cast<void*>(-1); |
143 static void* highest_ever_allocated = reinterpret_cast<void*>(0); | 139 static void* highest_ever_allocated = reinterpret_cast<void*>(0); |
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
894 } | 890 } |
895 | 891 |
896 | 892 |
897 void Sampler::Stop() { | 893 void Sampler::Stop() { |
898 ASSERT(IsActive()); | 894 ASSERT(IsActive()); |
899 SignalSender::RemoveActiveSampler(this); | 895 SignalSender::RemoveActiveSampler(this); |
900 SetActive(false); | 896 SetActive(false); |
901 } | 897 } |
902 | 898 |
903 } } // namespace v8::internal | 899 } } // namespace v8::internal |
OLD | NEW |