Skip to content

Commit 1abdd39

Browse files
committed
Add descriptor support for selfFreeing
1 parent 83f6aff commit 1abdd39

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

generate/scripts/helpers.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ var Helpers = {
143143
}
144144
},
145145

146+
// returns the libgittype found in types
146147
decorateLibgitType: function(type, types, enums) {
147148
var normalizedType = Helpers.normalizeCtype(type.cType);
148149
var libgitType = Helpers.getLibgitType(normalizedType, types);
@@ -164,6 +165,8 @@ var Helpers = {
164165
// we don't want to overwrite the c type of the passed in type
165166
_.merge(type, descriptor.types[normalizedType.replace("git_", "")] || {}, { cType: type.cType });
166167
}
168+
169+
return libgitType;
167170
},
168171

169172
decoratePrimaryType: function(typeDef, enums) {
@@ -176,6 +179,7 @@ var Helpers = {
176179
typeDef.filename = typeDef.typeName;
177180
typeDef.isLibgitType = true;
178181
typeDef.dependencies = [];
182+
typeDef.selfFreeing = Boolean(typeDefOverrides.selfFreeing);
179183

180184
typeDef.fields = typeDef.fields || [];
181185
typeDef.fields.forEach(function (field, index, allFields) {
@@ -241,7 +245,7 @@ var Helpers = {
241245
arg.cppClassName = Helpers.cTypeToCppName(arg.cType);
242246
arg.jsClassName = utils.titleCase(Helpers.cTypeToJsName(arg.cType));
243247

244-
Helpers.decorateLibgitType(arg, libgit2.types, enums);
248+
var libgitType = Helpers.decorateLibgitType(arg, libgit2.types, enums);
245249

246250
// Some arguments can be callbacks
247251
if (Helpers.isCallbackFunction(type)) {
@@ -271,6 +275,10 @@ var Helpers = {
271275
_.every(allArgs, function(_arg) { return !_arg.isSelf; });
272276
}
273277

278+
if (arg.isReturn && libgitType) {
279+
arg.selfFreeing = libgitType.selfFreeing;
280+
}
281+
274282
if (arg.isReturn && fnDef.return && fnDef.return.type === "int") {
275283
fnDef.return.isErrorCode = true;
276284
fnDef.isAsync = true;

0 commit comments

Comments
 (0)