mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[apps/stat/reg] Fix memory leak in Store Context
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
#include "regression_context.h"
|
||||
#include <poincare/decimal.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -21,10 +20,8 @@ const Expression * RegressionContext::expressionForSymbol(const Symbol * symbol)
|
||||
|
||||
assert(m_seriesPairIndex >= 0);
|
||||
assert(m_seriesPairIndex < m_store->numberOfPairsOfSeries(series));
|
||||
|
||||
Expression * result = new Decimal(m_store->get(series, storeI, m_seriesPairIndex));
|
||||
assert(result != nullptr);
|
||||
return result;
|
||||
m_value = Complex<double>::Float(m_store->get(series, storeI, m_seriesPairIndex));
|
||||
return &m_value;
|
||||
} else {
|
||||
return m_parentContext->expressionForSymbol(symbol);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
#define SHARED_STORE_CONTEXT_H
|
||||
|
||||
#include <poincare/context.h>
|
||||
#include <poincare/complex.h>
|
||||
#include "double_pair_store.h"
|
||||
#include <cmath>
|
||||
|
||||
namespace Shared {
|
||||
|
||||
@@ -12,7 +14,8 @@ public:
|
||||
Poincare::Context(),
|
||||
m_store(store),
|
||||
m_seriesPairIndex(-1),
|
||||
m_parentContext(nullptr)
|
||||
m_parentContext(nullptr),
|
||||
m_value(Poincare::Complex<double>::Float(NAN))
|
||||
{}
|
||||
void setParentContext(Poincare::Context * parentContext) { m_parentContext = parentContext; }
|
||||
void setSeriesPairIndex(int j) { m_seriesPairIndex = j; }
|
||||
@@ -21,6 +24,7 @@ protected:
|
||||
Shared::DoublePairStore * m_store;
|
||||
int m_seriesPairIndex;
|
||||
Poincare::Context * m_parentContext;
|
||||
Poincare::Complex<double> m_value;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#include "statistics_context.h"
|
||||
#include <poincare/decimal.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -21,10 +20,8 @@ const Expression * StatisticsContext::expressionForSymbol(const Symbol * symbol)
|
||||
|
||||
assert(m_seriesPairIndex >= 0);
|
||||
assert(m_seriesPairIndex < m_store->numberOfPairsOfSeries(series));
|
||||
|
||||
Expression * result = new Decimal(m_store->get(series, storeI, m_seriesPairIndex));
|
||||
assert(result != nullptr);
|
||||
return result;
|
||||
m_value = Complex<double>::Float(m_store->get(series, storeI, m_seriesPairIndex));
|
||||
return &m_value;
|
||||
} else {
|
||||
return m_parentContext->expressionForSymbol(symbol);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user