Rewrite battery history storage.
We now write battery history directly into a buffer, instead of creating objects. This allows for more efficient storage; later it can be even better because we can only write deltas. The old code is still there temporarily for validation. Change-Id: I9707d4d8ff30855be8ebdc93bc078911040d8e0b
This commit is contained in:
parent
4849bc5b3d
commit
97e2bcd760
@ -338,7 +338,7 @@ void Parcel::setDataPosition(size_t pos) const
|
|||||||
|
|
||||||
status_t Parcel::setDataCapacity(size_t size)
|
status_t Parcel::setDataCapacity(size_t size)
|
||||||
{
|
{
|
||||||
if (size > mDataSize) return continueWrite(size);
|
if (size > mDataCapacity) return continueWrite(size);
|
||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -386,11 +386,13 @@ status_t Parcel::appendFrom(Parcel *parcel, size_t offset, size_t len)
|
|||||||
}
|
}
|
||||||
int numObjects = lastIndex - firstIndex + 1;
|
int numObjects = lastIndex - firstIndex + 1;
|
||||||
|
|
||||||
|
if ((mDataSize+len) > mDataCapacity) {
|
||||||
// grow data
|
// grow data
|
||||||
err = growData(len);
|
err = growData(len);
|
||||||
if (err != NO_ERROR) {
|
if (err != NO_ERROR) {
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// append data
|
// append data
|
||||||
memcpy(mData + mDataPos, data + offset, len);
|
memcpy(mData + mDataPos, data + offset, len);
|
||||||
@ -1384,8 +1386,10 @@ status_t Parcel::continueWrite(size_t desired)
|
|||||||
return NO_MEMORY;
|
return NO_MEMORY;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (mDataSize > desired) {
|
||||||
mDataSize = desired;
|
mDataSize = desired;
|
||||||
LOGV("continueWrite Setting data size of %p to %d\n", this, mDataSize);
|
LOGV("continueWrite Setting data size of %p to %d\n", this, mDataSize);
|
||||||
|
}
|
||||||
if (mDataPos > desired) {
|
if (mDataPos > desired) {
|
||||||
mDataPos = desired;
|
mDataPos = desired;
|
||||||
LOGV("continueWrite Setting data pos of %p to %d\n", this, mDataPos);
|
LOGV("continueWrite Setting data pos of %p to %d\n", this, mDataPos);
|
||||||
|
Loading…
Reference in New Issue
Block a user