swagger-api/swagger-codegen
View on GitHubQt/C++ generated code crashes if response is of type string
Open
#4,835 opened on Feb 22, 2017
Client: QTIssue: Bughelp wanted
Description
Description
Qt/C++ code crashes during the API callback when output is cast to QString*
On Mac, this causes a fatal SIGSEGV exception in QtCore at QString::append(QString const&) + 17 according to the crash log.
Swagger-codegen version
Current version used by http://editor.swagger.io/#/ at time of posting.
Steps to reproduce
Include the following in the yaml:
responses:
'200':
description: OK
schema:
type: string
title: jsonData
then:
- Generate Qt/C++ code
- Create a slot corresponding to the callback and connect the callback signal to it
- Instantiate the API interface class (e.g. SWGDefaultApi) and call the endpoint
Suggest a Fix
I believe the problem is this line of code:
I believe the solution is to detect when {{returnType}} is QString* and in this case just replace the line with:
{{{returnType}}} output = &json;
I have tested this locally by replacing (in the generated code)
QString* output = static_cast<QString*>(create(json, QString("QString")));
with
QString* output = &json;