aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOrion Hodson <oth@google.com>2021-03-08 11:14:29 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-03-08 11:14:29 +0000
commit31c470dadecb8598004183b64f9e34251332c47c (patch)
tree082af47e99da7b4d375a98151fb699b4908eb631
parent87bf09f2c84808cbbaf05bd572c82b39b0ebca73 (diff)
parent7ed502db4bfa845685c809bf946610250be9722a (diff)
downloadxsdc-31c470dadecb8598004183b64f9e34251332c47c.tar.gz
xsdc: emit explicit single argument constructor decls am: dc83ae3433 am: fe3b6e5ca6 am: 86d0caa848 am: 7ed502db4b
Original change: https://android-review.googlesource.com/c/platform/system/tools/xsdc/+/1622420 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I75d7633cd1e860d026e5ea2d5b1b9a2e2de18866
-rw-r--r--src/com/android/xsdc/cpp/CppCodeGenerator.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/com/android/xsdc/cpp/CppCodeGenerator.java b/src/com/android/xsdc/cpp/CppCodeGenerator.java
index 561d3f5..432d510 100644
--- a/src/com/android/xsdc/cpp/CppCodeGenerator.java
+++ b/src/com/android/xsdc/cpp/CppCodeGenerator.java
@@ -734,7 +734,14 @@ public class CppCodeGenerator {
if (constructorArgsString.length() > 0) {
constructorArgsString = constructorArgsString.substring(2);
}
- parserHeaderFile.printf("%s(%s);\n", name, constructorArgsString);
+
+ boolean useExplicit =
+ !(constructorArgsString.isEmpty() || constructorArgsString.contains(","));
+ if (useExplicit) {
+ parserHeaderFile.printf("explicit %s(%s);\n", name, constructorArgsString);
+ } else {
+ parserHeaderFile.printf("%s(%s);\n", name, constructorArgsString);
+ }
parserCppFile.printf("\n%s::%s(%s) : ", fullName, name, constructorArgsString);
String parentArgsString = parentArgs.toString();