Skip to content

Commit 3725f22

Browse files
Superjomnluotao1
authored andcommitted
Hotfix/api predictor (#13383)
* hotfix for PaddleTensor buffer.
1 parent 65b1fbb commit 3725f22

File tree

1 file changed

+9
-7
lines changed
  • paddle/fluid/inference/api

1 file changed

+9
-7
lines changed

paddle/fluid/inference/api/api.cc

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
99
See the License for the specific language governing permissions and
1010
limitations under the License. */
1111

12-
#include <glog/logging.h>
1312
#include "paddle/fluid/inference/api/paddle_inference_api.h"
13+
#include "paddle/fluid/platform/enforce.h"
1414

1515
namespace paddle {
1616

@@ -64,13 +64,15 @@ PaddleBuf& PaddleBuf::operator=(PaddleBuf&& other) {
6464

6565
void PaddleBuf::Resize(size_t length) {
6666
// Only the owned memory can be reset, the external memory can't be changed.
67-
if (length_ == length) return;
67+
if (length_ >= length) return;
6868
if (memory_owned_) {
6969
Free();
70+
data_ = malloc(length);
71+
length_ = length;
72+
memory_owned_ = true;
73+
} else {
74+
PADDLE_THROW("The memory is allocated externally, can not Resized");
7075
}
71-
data_ = new char[length];
72-
length_ = length;
73-
memory_owned_ = true;
7476
}
7577

7678
void PaddleBuf::Reset(void* data, size_t length) {
@@ -82,8 +84,8 @@ void PaddleBuf::Reset(void* data, size_t length) {
8284

8385
void PaddleBuf::Free() {
8486
if (memory_owned_ && data_) {
85-
assert(length_ > 0);
86-
delete[] static_cast<char*>(data_);
87+
PADDLE_ENFORCE_GT(length_, 0);
88+
free(static_cast<char*>(data_));
8789
data_ = nullptr;
8890
length_ = 0;
8991
}

0 commit comments

Comments
 (0)