| 114 | } |
| 115 | |
| 116 | bool MNNCPUCopyBuffer(const Tensor* srcTensor, const Tensor* dstTensor) { |
| 117 | auto& srcBuffer = srcTensor->buffer(); |
| 118 | auto& dstBuffer = dstTensor->buffer(); |
| 119 | |
| 120 | MNN_ASSERT(srcBuffer.dimensions == dstBuffer.dimensions); |
| 121 | MNN_ASSERT(srcBuffer.type == dstBuffer.type); |
| 122 | if (nullptr == srcBuffer.host || nullptr == dstBuffer.host) { |
| 123 | return false; |
| 124 | } |
| 125 | auto code = CPUTensorConverter::convert(srcTensor, dstTensor); |
| 126 | if (NO_ERROR != code) { |
| 127 | MNN_ERROR("Error in CPUBackend::onCopyBuffer\n"); |
| 128 | } |
| 129 | return true; |
| 130 | } |
| 131 | |
| 132 | bool Backend::onAcquireBuffer(const Tensor* tensor, StorageType storageType) { |
| 133 | auto mem = this->onAcquire(tensor, storageType); |
no test coverage detected