Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Side by Side Diff: runtime/lib/double.cc

Issue 23480005: Change Bool::Get to return a handle instead of a pointer to a raw object. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/lib/identical.cc » ('j') | runtime/vm/object.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include <math.h> 5 #include <math.h>
6 6
7 #include "vm/bootstrap_natives.h" 7 #include "vm/bootstrap_natives.h"
8 8
9 #include "vm/bigint_operations.h" 9 #include "vm/bigint_operations.h"
10 #include "vm/code_generator.h" // DartModulo. 10 #include "vm/code_generator.h" // DartModulo.
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 113
114 114
115 DEFINE_NATIVE_ENTRY(Double_greaterThan, 2) { 115 DEFINE_NATIVE_ENTRY(Double_greaterThan, 2) {
116 const Double& left = Double::CheckedHandle(arguments->NativeArgAt(0)); 116 const Double& left = Double::CheckedHandle(arguments->NativeArgAt(0));
117 GET_NON_NULL_NATIVE_ARGUMENT(Double, right, arguments->NativeArgAt(1)); 117 GET_NON_NULL_NATIVE_ARGUMENT(Double, right, arguments->NativeArgAt(1));
118 bool result = right.IsNull() ? false : (left.value() > right.value()); 118 bool result = right.IsNull() ? false : (left.value() > right.value());
119 if (FLAG_trace_intrinsified_natives) { 119 if (FLAG_trace_intrinsified_natives) {
120 OS::Print("Double_greaterThan %s > %s\n", 120 OS::Print("Double_greaterThan %s > %s\n",
121 left.ToCString(), right.ToCString()); 121 left.ToCString(), right.ToCString());
122 } 122 }
123 return Bool::Get(result); 123 return Bool::Get(result).raw();
124 } 124 }
125 125
126 126
127 DEFINE_NATIVE_ENTRY(Double_greaterThanFromInteger, 2) { 127 DEFINE_NATIVE_ENTRY(Double_greaterThanFromInteger, 2) {
128 const Double& right = Double::CheckedHandle(arguments->NativeArgAt(0)); 128 const Double& right = Double::CheckedHandle(arguments->NativeArgAt(0));
129 GET_NON_NULL_NATIVE_ARGUMENT(Integer, left, arguments->NativeArgAt(1)); 129 GET_NON_NULL_NATIVE_ARGUMENT(Integer, left, arguments->NativeArgAt(1));
130 return Bool::Get(left.AsDoubleValue() > right.value()); 130 return Bool::Get(left.AsDoubleValue() > right.value()).raw();
131 } 131 }
132 132
133 133
134 DEFINE_NATIVE_ENTRY(Double_equal, 2) { 134 DEFINE_NATIVE_ENTRY(Double_equal, 2) {
135 const Double& left = Double::CheckedHandle(arguments->NativeArgAt(0)); 135 const Double& left = Double::CheckedHandle(arguments->NativeArgAt(0));
136 GET_NON_NULL_NATIVE_ARGUMENT(Double, right, arguments->NativeArgAt(1)); 136 GET_NON_NULL_NATIVE_ARGUMENT(Double, right, arguments->NativeArgAt(1));
137 bool result = right.IsNull() ? false : (left.value() == right.value()); 137 bool result = right.IsNull() ? false : (left.value() == right.value());
138 if (FLAG_trace_intrinsified_natives) { 138 if (FLAG_trace_intrinsified_natives) {
139 OS::Print("Double_equal %s == %s\n", 139 OS::Print("Double_equal %s == %s\n",
140 left.ToCString(), right.ToCString()); 140 left.ToCString(), right.ToCString());
141 } 141 }
142 return Bool::Get(result); 142 return Bool::Get(result).raw();
143 } 143 }
144 144
145 145
146 DEFINE_NATIVE_ENTRY(Double_equalToInteger, 2) { 146 DEFINE_NATIVE_ENTRY(Double_equalToInteger, 2) {
147 const Double& left = Double::CheckedHandle(arguments->NativeArgAt(0)); 147 const Double& left = Double::CheckedHandle(arguments->NativeArgAt(0));
148 GET_NON_NULL_NATIVE_ARGUMENT(Integer, right, arguments->NativeArgAt(1)); 148 GET_NON_NULL_NATIVE_ARGUMENT(Integer, right, arguments->NativeArgAt(1));
149 return Bool::Get(left.value() == right.AsDoubleValue()); 149 return Bool::Get(left.value() == right.AsDoubleValue()).raw();
150 } 150 }
151 151
152 152
153 DEFINE_NATIVE_ENTRY(Double_round, 1) { 153 DEFINE_NATIVE_ENTRY(Double_round, 1) {
154 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); 154 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0));
155 return Double::New(round(arg.value())); 155 return Double::New(round(arg.value()));
156 } 156 }
157 157
158 DEFINE_NATIVE_ENTRY(Double_floor, 1) { 158 DEFINE_NATIVE_ENTRY(Double_floor, 1) {
159 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); 159 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0));
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 args.SetAt(0, String::Handle( 258 args.SetAt(0, String::Handle(
259 String::New("Illegal arguments to double.toStringAsPrecision"))); 259 String::New("Illegal arguments to double.toStringAsPrecision")));
260 Exceptions::ThrowByType(Exceptions::kArgument, args); 260 Exceptions::ThrowByType(Exceptions::kArgument, args);
261 return Object::null(); 261 return Object::null();
262 } 262 }
263 } 263 }
264 264
265 265
266 DEFINE_NATIVE_ENTRY(Double_getIsInfinite, 1) { 266 DEFINE_NATIVE_ENTRY(Double_getIsInfinite, 1) {
267 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); 267 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0));
268 return Bool::Get(isinf(arg.value())); 268 return Bool::Get(isinf(arg.value())).raw();
269 } 269 }
270 270
271 271
272 DEFINE_NATIVE_ENTRY(Double_getIsNaN, 1) { 272 DEFINE_NATIVE_ENTRY(Double_getIsNaN, 1) {
273 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); 273 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0));
274 return Bool::Get(isnan(arg.value())); 274 return Bool::Get(isnan(arg.value())).raw();
275 } 275 }
276 276
277 277
278 DEFINE_NATIVE_ENTRY(Double_getIsNegative, 1) { 278 DEFINE_NATIVE_ENTRY(Double_getIsNegative, 1) {
279 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); 279 const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0));
280 // Include negative zero, infinity. 280 // Include negative zero, infinity.
281 return Bool::Get(signbit(arg.value()) && !isnan(arg.value())); 281 return Bool::Get(signbit(arg.value()) && !isnan(arg.value())).raw();
282 } 282 }
283 283
284 // Add here only functions using/referring to old-style casts. 284 // Add here only functions using/referring to old-style casts.
285 285
286 } // namespace dart 286 } // namespace dart
OLDNEW
« no previous file with comments | « no previous file | runtime/lib/identical.cc » ('j') | runtime/vm/object.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698