Lines Matching defs:buffer
73 static Vector<const char> TrimLeadingZeros(Vector<const char> buffer) {
74 for (int i = 0; i < buffer.length(); i++) {
75 if (buffer[i] != '0') {
76 return buffer.SubVector(i, buffer.length());
79 return Vector<const char>(buffer.begin(), 0);
82 static Vector<const char> TrimTrailingZeros(Vector<const char> buffer) {
83 for (int i = buffer.length() - 1; i >= 0; --i) {
84 if (buffer[i] != '0') {
85 return buffer.SubVector(0, i + 1);
88 return Vector<const char>(buffer.begin(), 0);
91 static void TrimToMaxSignificantDigits(Vector<const char> buffer, int exponent,
95 significant_buffer[i] = buffer[i];
97 // The input buffer has been trimmed. Therefore the last digit must be
99 DCHECK_NE(buffer[buffer.length() - 1], '0');
104 exponent + (buffer.length() - kMaxSignificantDecimalDigits);
107 // Reads digits from the buffer and converts them to a uint64.
112 static uint64_t ReadUint64(Vector<const char> buffer,
116 while (i < buffer.length() && result <= (kMaxUint64 / 10 - 1)) {
117 int digit = buffer[i++] - '0';
125 // Reads a DiyFp from the buffer.
129 static void ReadDiyFp(Vector<const char> buffer, DiyFp* result,
132 uint64_t significand = ReadUint64(buffer, &read_digits);
133 if (buffer.length() == read_digits) {
138 if (buffer[read_digits] >= '5') {
144 *remaining_decimals = buffer.length() - read_digits;
234 static bool DiyFpStrtod(Vector<const char> buffer, int exponent,
238 ReadDiyFp(buffer, &input, &remaining_decimals);
268 if (kMaxUint64DecimalDigits - buffer.length() >= adjustment_exponent) {
341 // Returns the correct double for the buffer*10^exponent.
345 // buffer.length() + exponent <= kMaxDecimalPower + 1
346 // buffer.length() + exponent > kMinDecimalPower
347 // buffer.length() <= kMaxDecimalSignificantDigits
348 static double BignumStrtod(Vector<const char> buffer, int exponent,
356 DCHECK(buffer.length() + exponent <= kMaxDecimalPower + 1);
357 DCHECK_GT(buffer.length() + exponent, kMinDecimalPower);
358 DCHECK_LE(buffer.length(), kMaxSignificantDecimalDigits);
366 input.AssignDecimalString(buffer);
391 double Strtod(Vector<const char> buffer, int exponent) {
392 Vector<const char> left_trimmed = TrimLeadingZeros(buffer);