FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Clean up creation/deletion of global payloads · nodegit/nodegit@fbcd00e · GitHub

Repository navigation

Commit fbcd00e

Browse files
authored andcommitted
Clean up creation/deletion of global payloads
1 parent c60ed47 commit fbcd00e

2 files changed

Lines changed: 27 additions & 21 deletions

File tree

‎generate/templates/partials/async_function.cc‎

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ NAN_METHOD({{ cppClassName }}::{{ cppFunctionName }}) {
2525
{%elsif arg.isCallbackFunction %}
2626
if (!args[{{ arg.jsArg }}]->IsFunction()) {
2727
baton->{{ arg.name }} = NULL;
28+
{%if arg.payload.globalPayload %}
29+
globalPayload->{{ arg.name }} = NULL;
30+
{%else%}
2831
baton->{{ arg.payload.name }} = NULL;
32+
{%endif%}
2933
}
3034
else {
3135
baton->{{ arg.name}} = {{ cppFunctionName }}_{{ arg.name }}_cppCallback;
@@ -150,12 +154,7 @@ void {{ cppClassName }}::{{ cppFunctionName }}Worker::HandleOKCallback() {
150154
delete baton->{{ arg.payload.name }};
151155
{%endif%}
152156
{%elsif arg.globalPayload %}
153-
{%each args|argsInfo as cbArg %}
154-
{%if cbArg.isCallbackFunction %}
155-
delete (({{ cppFunctionName}}_globalPayload*)baton->{{ arg.name }})->{{ cbArg.name }};
156-
{%endif%}
157-
{%endeach%}
158-
free((void *)baton->{{ arg.name }});
157+
delete ({{ cppFunctionName}}_globalPayload*)baton->{{ arg.name }};
159158
{%else%}
160159
free((void*)baton->{{ arg.name }});
161160
{%endif%}
@@ -180,22 +179,11 @@ void {{ cppClassName }}::{{ cppFunctionName }}Worker::HandleOKCallback() {
180179
free((void *)baton->{{ arg.name }});
181180
}
182181
{%elsif arg.isCallbackFunction %}
183-
{%if arg.payload.globalPayload %}
184-
{%each args|argsInfo as cbArg %}
185-
{%if cbArg.isCallbackFunction %}
186-
delete (({{ cppFunctionName }}_globalPayload*)baton->{{ arg.name }})->{{ cbArg.name }};
187-
{%endif%}
188-
{%endeach%}
189-
{%else%}
190-
delete (NanCallback *)baton->{{ arg.payload.name }};
182+
{%if not arg.payload.globalPayload %}
183+
delete baton->{{ arg.payload.name }};
191184
{%endif%}
192185
{%elsif arg.globalPayload %}
193-
{%each args|argsInfo as cbArg %}
194-
{%if cbArg.isCallbackFunction %}
195-
delete (({{ cppFunctionName}}_globalPayload*)baton->{{ arg.name }})->{{ cbArg.name }};
196-
{%endif%}
197-
{%endeach%}
198-
free((void *)baton->{{ arg.name }});
186+
delete ({{ cppFunctionName}}_globalPayload*)baton->{{ arg.name }};
199187
{%endif%}
200188
{%endeach%}
201189

‎generate/templates/templates/class_header.h‎

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,27 @@ class {{ cppClassName }} : public ObjectWrap {
132132
struct {{ function.cppFunctionName }}_globalPayload {
133133
{%each function.args as arg %}
134134
{%if arg.isCallbackFunction %}
135-
NanCallback * {{ arg.name }};
135+
NanCallback * {{ arg.name }};
136136
{%endif%}
137137
{%endeach%}
138+
139+
{{ function.cppFunctionName }}_globalPayload() {
140+
{%each function.args as arg %}
141+
{%if arg.isCallbackFunction %}
142+
{{ arg.name }} = NULL;
143+
{%endif%}
144+
{%endeach%}
145+
}
146+
147+
~{{ function.cppFunctionName }}_globalPayload() {
148+
{%each function.args as arg %}
149+
{%if arg.isCallbackFunction %}
150+
if ({{ arg.name }} != NULL) {
151+
delete {{ arg.name }};
152+
}
153+
{%endif%}
154+
{%endeach%}
155+
}
138156
};
139157
{%endif%}
140158
{%endeach%}

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL