Merge "Remove unused code DataSource::getVector()"

gugelfrei
TreeHugger Robot 7 years ago committed by Android (Google) Code Review
commit 5dca017406

@ -59,20 +59,6 @@ public:
bool getUInt32Var(off64_t offset, uint32_t *x, size_t size);
bool getUInt64Var(off64_t offset, uint64_t *x, size_t size);
// Reads in "count" entries of type T into vector *x.
// Returns true if "count" entries can be read.
// If fewer than "count" entries can be read, return false. In this case,
// the output vector *x will still have those entries that were read. Call
// x->size() to obtain the number of entries read.
// The optional parameter chunkSize specifies how many entries should be
// read from the data source at one time into a temporary buffer. Increasing
// chunkSize can improve the performance at the cost of extra memory usage.
// The default value for chunkSize is set to read at least 4k bytes at a
// time, depending on sizeof(T).
template <typename T>
bool getVector(off64_t offset, Vector<T>* x, size_t count,
size_t chunkSize = (4095 / sizeof(T)) + 1);
// May return ERROR_UNSUPPORTED.
virtual status_t getSize(off64_t *size);
@ -111,51 +97,6 @@ private:
DataSource &operator=(const DataSource &);
};
template <typename T>
bool DataSource::getVector(off64_t offset, Vector<T>* x, size_t count,
size_t chunkSize)
{
x->clear();
if (chunkSize == 0) {
return false;
}
if (count == 0) {
return true;
}
T tmp[chunkSize];
ssize_t numBytesRead;
size_t numBytesPerChunk = chunkSize * sizeof(T);
size_t i;
for (i = 0; i + chunkSize < count; i += chunkSize) {
// This loops is executed when more than chunkSize records need to be
// read.
numBytesRead = this->readAt(offset, (void*)&tmp, numBytesPerChunk);
if (numBytesRead == -1) { // If readAt() returns -1, there is an error.
return false;
}
if (static_cast<size_t>(numBytesRead) < numBytesPerChunk) {
// This case is triggered when the stream ends before the whole
// chunk is read.
x->appendArray(tmp, (size_t)numBytesRead / sizeof(T));
return false;
}
x->appendArray(tmp, chunkSize);
offset += numBytesPerChunk;
}
// There are (count - i) more records to read.
// Right now, (count - i) <= chunkSize.
// We do the same thing as above, but with chunkSize replaced by count - i.
numBytesRead = this->readAt(offset, (void*)&tmp, (count - i) * sizeof(T));
if (numBytesRead == -1) {
return false;
}
x->appendArray(tmp, (size_t)numBytesRead / sizeof(T));
return x->size() == count;
}
} // namespace android
#endif // DATA_SOURCE_H_

Loading…
Cancel
Save