You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by arpadboda <gi...@git.apache.org> on 2018/11/15 12:00:53 UTC
[GitHub] nifi-minifi-cpp pull request #439: MINIFICPP-645 - Move from new to malloc i...
GitHub user arpadboda opened a pull request:
https://github.com/apache/nifi-minifi-cpp/pull/439
MINIFICPP-645 - Move from new to malloc in CAPI to facilitate eventua…
…l change from C++ to C
Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?
- [ ] Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
- [ ] Has your PR been rebased against the latest commit within the target branch (typically master)?
- [ ] Is your initial contribution a single, squashed commit?
### For code changes:
- [ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)?
- [ ] If applicable, have you updated the LICENSE file?
- [ ] If applicable, have you updated the NOTICE file?
### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in which it is rendered?
### Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/arpadboda/nifi-minifi-cpp MINIFICPP-645
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/nifi-minifi-cpp/pull/439.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #439
----
commit 8b0e39dc8ec0dc79c8b3e58fa1a364e736a1fe38
Author: Arpad Boda <ab...@...>
Date: 2018-11-15T12:00:07Z
MINIFICPP-645 - Move from new to malloc in CAPI to facilitate eventual change from C++ to C
----
---
[GitHub] nifi-minifi-cpp pull request #439: MINIFICPP-645 - Move from new to malloc i...
Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:
https://github.com/apache/nifi-minifi-cpp/pull/439
---
[GitHub] nifi-minifi-cpp pull request #439: MINIFICPP-645 - Move from new to malloc i...
Posted by arpadboda <gi...@git.apache.org>.
Github user arpadboda commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/439#discussion_r233815698
--- Diff: nanofi/src/api/nanofi.cpp ---
@@ -205,7 +205,7 @@ flow_file_record* create_ff_object(const char *file, const size_t len, const uin
}
flow_file_record* create_ff_object_na(const char *file, const size_t len, const uint64_t size) {
- flow_file_record *new_ff = new flow_file_record;
+ flow_file_record *new_ff = (flow_file_record*) malloc(sizeof(flow_file_record));
--- End diff --
Happy newless year! :)
---
[GitHub] nifi-minifi-cpp issue #439: MINIFICPP-645 - Move from new to malloc in CAPI ...
Posted by phrocker <gi...@git.apache.org>.
Github user phrocker commented on the issue:
https://github.com/apache/nifi-minifi-cpp/pull/439
> There is no delete, it was wrong before, this PR just fixes:
>
> ```
> void free_flowfile(flow_file_record *ff) {
> if (ff == nullptr) {
> return;
> }
> auto content_repo_ptr = static_cast<std::shared_ptr<minifi::core::ContentRepository>*>(ff->crp);
> if (content_repo_ptr->get()) {
> std::shared_ptr<minifi::ResourceClaim> claim = std::make_shared<minifi::ResourceClaim>(ff->contentLocation, *content_repo_ptr);
> (*content_repo_ptr)->remove(claim);
> }
> if (ff->ffp == nullptr) {
> auto map = static_cast<string_map*>(ff->attributes);
> delete map;
> }
> free(ff->contentLocation);
> free(ff);
> ```
> The last line is the one that frees.
Ah sorry, I was referencing the fact that over the course of PRs we've gone back and forth a little between malloc/new. There is a free_flow(flow *) that still uses delete. Happy to see a different PR if you prefer to do that, but it all falls under the guise of this ticket IMO. Would you prefer I merge this and then keep the ticket open as a blocker for the free? No real preference on my part.
---
[GitHub] nifi-minifi-cpp issue #439: MINIFICPP-645 - Move from new to malloc in CAPI ...
Posted by arpadboda <gi...@git.apache.org>.
Github user arpadboda commented on the issue:
https://github.com/apache/nifi-minifi-cpp/pull/439
There is no delete, it was wrong before:
```
void free_flowfile(flow_file_record *ff) {
if (ff == nullptr) {
return;
}
auto content_repo_ptr = static_cast<std::shared_ptr<minifi::core::ContentRepository>*>(ff->crp);
if (content_repo_ptr->get()) {
std::shared_ptr<minifi::ResourceClaim> claim = std::make_shared<minifi::ResourceClaim>(ff->contentLocation, *content_repo_ptr);
(*content_repo_ptr)->remove(claim);
}
if (ff->ffp == nullptr) {
auto map = static_cast<string_map*>(ff->attributes);
delete map;
}
free(ff->contentLocation);
free(ff);
```
The last line is the one that frees.
---
[GitHub] nifi-minifi-cpp pull request #439: MINIFICPP-645 - Move from new to malloc i...
Posted by phrocker <gi...@git.apache.org>.
Github user phrocker commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/439#discussion_r234012390
--- Diff: nanofi/src/api/nanofi.cpp ---
@@ -205,7 +205,7 @@ flow_file_record* create_ff_object(const char *file, const size_t len, const uin
}
flow_file_record* create_ff_object_na(const char *file, const size_t len, const uint64_t size) {
- flow_file_record *new_ff = new flow_file_record;
+ flow_file_record *new_ff = (flow_file_record*) malloc(sizeof(flow_file_record));
--- End diff --
Oops, sorry, must change the delete to free due to avoid heap corruption.
---