diff --git a/IO/AMR/vtkAMRBaseReader.cxx b/IO/AMR/vtkAMRBaseReader.cxx index cb4a9d589a4f809e46d51f2e7da80826408c7d23..1596848a0d20c126f201aab17523e138cdd4d145 100644 --- a/IO/AMR/vtkAMRBaseReader.cxx +++ b/IO/AMR/vtkAMRBaseReader.cxx @@ -251,7 +251,14 @@ int vtkAMRBaseReader::RequestInformation( this->Superclass::RequestInformation( rqst, inputVector, outputVector ); - this->Metadata = vtkOverlappingAMR::New(); + if (this->Metadata == nullptr) + { + this->Metadata = vtkOverlappingAMR::New(); + } + else + { + this->Metadata->Initialize(); + } this->FillMetaData( ); vtkInformation* info = outputVector->GetInformationObject(0); assert( "pre: output information object is nullptr" && (info != nullptr) ); diff --git a/IO/AMR/vtkAMReXGridReaderInternal.cxx b/IO/AMR/vtkAMReXGridReaderInternal.cxx index c88dd1f73014e715b949e7908554411537eadb29..1a367685a30ae41c99b437ff83e24da9e3fdb73d 100644 --- a/IO/AMR/vtkAMReXGridReaderInternal.cxx +++ b/IO/AMR/vtkAMReXGridReaderInternal.cxx @@ -1072,7 +1072,7 @@ int vtkAMReXGridReaderInternal::ReadBoxArray(std::istream& is, int* boxArray, in is >> c; // read '(' for (int ee = 0; ee < this->Header->dim; ++ee) { - is >> boxArray[3 * dd + ee]; + is >> boxArray[this->Header->dim * dd + ee]; if (ee < (this->Header->dim - 1)) { is >> c; // read ',' @@ -1091,7 +1091,7 @@ int vtkAMReXGridReaderInternal::ReadBoxArray(std::istream& is, int* boxArray, in int numberOfPoints = 1; for (int i = 0; i < this->Header->dim; ++i) { - boxArrayDim[i] = ((boxArray[3 * 1 + i] - boxArray[3 * 0 + i]) + 1); + boxArrayDim[i] = ((boxArray[this->Header->dim * 1 + i] - boxArray[this->Header->dim * 0 + i]) + 1); numberOfPoints *= boxArrayDim[i]; } if (debugReader) @@ -1105,7 +1105,7 @@ void vtkAMReXGridReaderInternal::PrintBoxArray(int* boxArray) std::cout << "("; for (int space = 0; space < this->Header->dim; ++space) { - std::cout << boxArray[0 * 3 + space]; + std::cout << boxArray[0 * this->Header->dim + space]; if (space < (this->Header->dim - 1)) std::cout << ","; } @@ -1113,7 +1113,7 @@ void vtkAMReXGridReaderInternal::PrintBoxArray(int* boxArray) std::cout << "("; for (int space = 0; space < this->Header->dim; ++space) { - std::cout << boxArray[1 * 3 + space]; + std::cout << boxArray[1 * this->Header->dim + space]; if (space < (this->Header->dim - 1)) std::cout << ","; } @@ -1121,7 +1121,7 @@ void vtkAMReXGridReaderInternal::PrintBoxArray(int* boxArray) std::cout << "("; for (int space = 0; space < this->Header->dim; ++space) { - std::cout << boxArray[2 * 3 + space]; + std::cout << boxArray[2 * this->Header->dim + space]; if (space < (this->Header->dim - 1)) std::cout << ","; }