I'm getting a shared ptr error when charting data. I have one categorical dataset and 4 double datasets. I can run any 3 of the 4 double datasets together with the categorical dataset with no errors. When I try and run all for datasets together I get this error:
sharedptr.h(85):assert "m_ref!=_null" failed in operator().
I have a total of 10 double datasets I need to chart.
Here's my code:
Code: Select all
void AcornFrame::OnButtonGraphClick(wxCommandEvent& event)
{
int j;
wxWindow* ChartWindow = new wxWindow(Panel5,wxID_ANY,wxDefaultPosition, wxSize(1312,800));
wxVector<wxString> labels;
labels.push_back("0.5");
labels.push_back("1.5");
labels.push_back("2.5");
labels.push_back("3.5");
labels.push_back("4.5");
labels.push_back("5.5");
wxChartsCategoricalData::ptr chartData = wxChartsCategoricalData::make_shared(labels);
double testno1;
double testno2;
double testno3;
double testno4;
// Add the first dataset
wxVector<wxDouble> points1;
for(j=1;j<7;++j)
{
testno1=stumpdbh10table[6][j];
points1.push_back(testno1);
}
wxChartsDoubleDataset::ptr dataset1(new wxChartsDoubleDataset("MIXED HARDWOODS", points1));
chartData->AddDataset(dataset1);
// Add the second dataset
wxVector<wxDouble> points2;
for(j=1;j<7;++j)
{
testno2=stumpdbh10table[7][j];
points2.push_back(testno2);
}
wxChartsDoubleDataset::ptr dataset2(new wxChartsDoubleDataset("CONIFER SPECIES", points2));
chartData->AddDataset(dataset2);
// Add the third dataset
wxVector<wxDouble> points3;
for(j=1;j<7;++j)
{
testno3=stumpdbh10table[8][j];
points3.push_back(testno3);
}
wxChartsDoubleDataset::ptr dataset3(new wxChartsDoubleDataset("HICKORY SPECIES", points3));
chartData->AddDataset(dataset3);
// Add the fourth dataset
wxVector<wxDouble> points4;
for(j=1;j<7;++j)
{
testno4=stumpdbh10table[10][j];
points4.push_back(testno4);
}
wxChartsDoubleDataset::ptr dataset4(new wxChartsDoubleDataset("GUM SPECIES", points4));
chartData->AddDataset(dataset4);
wxStackedColumnChartCtrl* stackedColumnChartCtrl = new wxStackedColumnChartCtrl(ChartWindow,
wxID_ANY, chartData, wxPoint(0,0),wxSize(800,500));
}