-
Notifications
You must be signed in to change notification settings - Fork 61
Closed
Description
Hi!
I trying to build interface to the libclang.codeCompleteAt. So far so good, but I have an issue with ref-array when using array of structs.
When I pass struct as array type, then I get assertion failed at this line. Commenting out this line fixes issue for me. expectedLength must match pointer size for my case.
Struct description:
var CXCompletionResult = exports.CXCompletionResult = Struct({
CursorKind: ref.types.uint32,
CompletionString: CXCompletionString,
});
var CXCompletionResultPtr = exports.CXCompletionResultPtr = ref.refType(CXCompletionResult);
var CXCodeCompleteResults = exports.CXCodeCompleteResults = Struct({
Results: CXCompletionResultPtr,
NumResults: ref.types.uint32,
});FFI call code:
var codeCompletionOptions = lib.clang_defaultCodeCompleteOptions ();
var completionResultsRef = lib.clang_codeCompleteAt (
this._instance,
fileName,
lineNo,
columnNo,
null, 0, codeCompletionOptions
);
var completionResults = completionResultsRef.deref();
console.log ('completion result count: ', completionResults.NumResults);
var results = completionResults.Results;
if (completionResults.NumResults > 0) {
if (!('CompletionString' in results.type.fields)) {
console.log ('wrong data, no CompletionString in type definition');
}
var CompletionArray = ArrayType (d.CXCompletionResult);
var completions = new CompletionArray (completionResults.Results, completionResults.NumResults);
...
}Metadata
Metadata
Assignees
Labels
No labels