diff --git a/components/codetools/ccodeparsertool.pas b/components/codetools/ccodeparsertool.pas index e893e8e47f..db0e7f9772 100644 --- a/components/codetools/ccodeparsertool.pas +++ b/components/codetools/ccodeparsertool.pas @@ -1931,6 +1931,10 @@ end; function TCCodeParserTool.NodeAsString(Node: TCodeTreeNode): string; begin + if Node=nil then begin + Result:='nil'; + exit; + end; case Node.Desc of ccnName: Result:=copy(Src,Node.StartPos,Node.EndPos-Node.StartPos); else Result:=''; diff --git a/components/codetools/codetree.pas b/components/codetools/codetree.pas index 3bab1a38d5..b9a582f399 100644 --- a/components/codetools/codetree.pas +++ b/components/codetools/codetree.pas @@ -731,7 +731,10 @@ end; function TCodeTreeNode.DescAsString: string; begin - Result:=NodeDescriptionAsString(Desc); + if Self=nil then + Result:='nil' + else + Result:=NodeDescriptionAsString(Desc); end; function TCodeTreeNode.GetRoot: TCodeTreeNode; diff --git a/components/codetools/examples/scanexamples/test.h b/components/codetools/examples/scanexamples/test.h index 4673bb361d..d0917c4a91 100644 --- a/components/codetools/examples/scanexamples/test.h +++ b/components/codetools/examples/scanexamples/test.h @@ -73,7 +73,7 @@ int bafprintf(FILE *stream, const char *format, ...); int basprintf(char *str, const char *format, ...); int basnprintf(char *str, size_t size, const char *format, ...); int hci_send_req(int dd, struct hci_request *req, int timeout); // implicit struct -int hci_for_each_dev(int flag, int(*func)(int dd, int dev_id, long arg), long arg); // implicit function type +int hci_for_each_dev(int flag, int(*func)(int dd2, int dev_id, long arg1), long arg2); // implicit function type void *bt_malloc(size_t size); void bt_free(void *ptr); diff --git a/components/codetools/h2pastool.pas b/components/codetools/h2pastool.pas index a50c57b337..0d46c56184 100644 --- a/components/codetools/h2pastool.pas +++ b/components/codetools/h2pastool.pas @@ -614,7 +614,7 @@ begin // create proc type ParamsNode:=CTool.GetFunctionParamListNode(CNode); SubTypeName:=CreatePascalNameFromCCode(CurName+CTool.ExtractFunctionParamList(CNode)); - TypeH2PNode:=CreateH2PNode(SubTypeName,'',nil,ctnProcedureType,SimpleType, + TypeH2PNode:=CreateH2PNode(SubTypeName,'',ParamsNode,ctnProcedureType,SimpleType, nil,true); DebugLn(['TH2PasTool.ConvertFunction function type added: ',TypeH2PNode.DescAsString(CTool)]); // create variable