Cleanup getService
getService uses a for-loop in a werid way, which makes it
hard to understand for readers.
Changing it to a while loop.
Test: pass
Test: boots
Test: lshal
Test: hidl_test
Change-Id: I6d7ccbd687da6d833a22fe5410299fe8cd61a53e
diff --git a/generateCpp.cpp b/generateCpp.cpp
index a3c9a78..55ea0d1 100644
--- a/generateCpp.cpp
+++ b/generateCpp.cpp
@@ -187,13 +187,8 @@
// }
// }
- out.sFor("bool tried = false; "
- "!getStub && (vintfHwbinder || (vintfEmpty && !tried)); "
- "tried = true", [&] {
-
- // Because this is a for loop, a "continue" statement means
- // setting tried, and hence "break" for vintfEmpty and
- // "retry" for vintfHwBinder
+ out << "bool tried = false;\n";
+ out.sWhile("!getStub && (vintfHwbinder || (vintfEmpty && !tried))", [&] {
out.sIf("tried", [&] {
// sleep only after the first trial.
@@ -201,6 +196,8 @@
<< "sleep(1);\n";
}).endl();
+ out << "tried = true;\n";
+
out << "const ::android::sp<::android::hidl::manager::V1_0::IServiceManager> sm\n";
out.indent(2, [&] {
out << "= ::android::hardware::defaultServiceManager();\n";