Merge changes I4d47331e,Iabe1f5cd

* changes:
  [apps/sequence][app/graph] Repare checksum
  [apps/shared] Fix bug
This commit is contained in:
Émilie Feral
2017-05-22 14:55:44 +02:00
committed by Gerrit
3 changed files with 15 additions and 5 deletions

View File

@@ -18,9 +18,13 @@ CartesianFunctionStore::CartesianFunctionStore() :
}
uint32_t CartesianFunctionStore::storeChecksum() {
size_t dataLengthInBytes = m_numberOfFunctions*sizeof(CartesianFunction);
size_t dataLengthInBytes = k_maxNumberOfFunctions*TextField::maxBufferSize()*sizeof(char);
assert((dataLengthInBytes & 0x3) == 0); // Assert that dataLengthInBytes is a multiple of 4
return Ion::crc32((uint32_t *)m_functions, dataLengthInBytes>>2);
char data[k_maxNumberOfFunctions*TextField::maxBufferSize()] = {};
for (int i = 0; i < k_maxNumberOfFunctions; i++) {
strlcpy(data+i*TextField::maxBufferSize(), m_functions[i].text(), TextField::maxBufferSize());
}
return Ion::crc32((uint32_t *)data, dataLengthInBytes>>2);
}
CartesianFunction * CartesianFunctionStore::functionAtIndex(int i) {

View File

@@ -11,9 +11,15 @@ constexpr KDColor SequenceStore::k_defaultColors[k_maxNumberOfSequences];
constexpr const char * SequenceStore::k_sequenceNames[k_maxNumberOfSequences];
uint32_t SequenceStore::storeChecksum() {
size_t dataLengthInBytes = m_numberOfFunctions*sizeof(Sequence);
size_t dataLengthInBytes = k_maxNumberOfSequences*3*TextField::maxBufferSize()*sizeof(char);
assert((dataLengthInBytes & 0x3) == 0); // Assert that dataLengthInBytes is a multiple of 4
return Ion::crc32((uint32_t *)m_sequences, dataLengthInBytes>>2);
char data[3*k_maxNumberOfSequences*TextField::maxBufferSize()] = {};
for (int i = 0; i < k_maxNumberOfSequences; i++) {
strlcpy(data+i*3*TextField::maxBufferSize(), m_sequences[i].text(), TextField::maxBufferSize());
strlcpy(data+i*3*TextField::maxBufferSize()+TextField::maxBufferSize(), m_sequences[i].firstInitialConditionText(), TextField::maxBufferSize());
strlcpy(data+i*3*TextField::maxBufferSize()+2*TextField::maxBufferSize(), m_sequences[i].secondInitialConditionText(), TextField::maxBufferSize());
}
return Ion::crc32((uint32_t *)data, dataLengthInBytes>>2);
}
Sequence * SequenceStore::functionAtIndex(int i) {

View File

@@ -150,8 +150,8 @@ void InteractiveCurveViewController::viewWillAppear() {
curveView()->selectMainView(true);
header()->setSelectedButton(-1);
reloadBannerView();
curveView()->reload();
curveView()->setOkView(&m_okView);
curveView()->reload();
}
void InteractiveCurveViewController::didEnterResponderChain(Responder * previousFirstResponder) {