Home | History | Annotate | Download | only in src

Lines Matching refs:buffer

94 static Vector<const char> TrimLeadingZeros(Vector<const char> buffer) {
95 for (int i = 0; i < buffer.length(); i++) {
96 if (buffer[i] != '0') {
97 return buffer.SubVector(i, buffer.length());
100 return Vector<const char>(buffer.start(), 0);
104 static Vector<const char> TrimTrailingZeros(Vector<const char> buffer) {
105 for (int i = buffer.length() - 1; i >= 0; --i) {
106 if (buffer[i] != '0') {
107 return buffer.SubVector(0, i + 1);
110 return Vector<const char>(buffer.start(), 0);
114 static void TrimToMaxSignificantDigits(Vector<const char> buffer,
119 significant_buffer[i] = buffer[i];
121 // The input buffer has been trimmed. Therefore the last digit must be
123 ASSERT(buffer[buffer.length() - 1] != '0');
128 exponent + (buffer.length() - kMaxSignificantDecimalDigits);
131 // Reads digits from the buffer and converts them to a uint64.
136 static uint64_t ReadUint64(Vector<const char> buffer,
140 while (i < buffer.length() && result <= (kMaxUint64 / 10 - 1)) {
141 int digit = buffer[i++] - '0';
150 // Reads a DiyFp from the buffer.
154 static void ReadDiyFp(Vector<const char> buffer,
158 uint64_t significand = ReadUint64(buffer, &read_digits);
159 if (buffer.length() == read_digits) {
164 if (buffer[read_digits] >= '5') {
170 *remaining_decimals = buffer.length() - read_digits;
255 static bool DiyFpStrtod(Vector<const char> buffer,
260 ReadDiyFp(buffer, &input, &remaining_decimals);
291 if (kMaxUint64DecimalDigits - buffer.length() >= adjustment_exponent) {
365 // Returns the correct double for the buffer*10^exponent.
369 // buffer.length() + exponent <= kMaxDecimalPower + 1
370 // buffer.length() + exponent > kMinDecimalPower
371 // buffer.length() <= kMaxDecimalSignificantDigits
372 static double BignumStrtod(Vector<const char> buffer,
381 ASSERT(buffer.length() + exponent <= kMaxDecimalPower + 1);
382 ASSERT(buffer.length() + exponent > kMinDecimalPower);
383 ASSERT(buffer.length() <= kMaxSignificantDecimalDigits);
391 input.AssignDecimalString(buffer);
417 double Strtod(Vector<const char> buffer, int exponent) {
418 Vector<const char> left_trimmed = TrimLeadingZeros(buffer);