summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2018-10-12 15:15:06 -0700
committerSteven Moreland <smoreland@google.com>2018-10-12 15:16:20 -0700
commitdd772b4a3a7830670113bcfb8a263b6f549181b2 (patch)
tree52da424eed3cafc622546c320258e84f3fd14b0f /base
parent872da2d5d17d35bdb929fd7ad896b8b28eab1fda (diff)
downloadlibhidl-dd772b4a3a7830670113bcfb8a263b6f549181b2.tar.gz
Status: no 'okay' EX_TRANSACTION_FAILED
When EX_TRANSACTION_FAILED is set, mError will never be okay. From libbinder's fb26e720a27e464e388986e665a43f6dfa815144. Bug: 116618418 Test: boot Change-Id: I09d95649976c0e8ef6cc5f4002c93b1b7cbba9a8
Diffstat (limited to 'base')
-rw-r--r--base/Status.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/base/Status.cpp b/base/Status.cpp
index 7161bc0..5a4c918 100644
--- a/base/Status.cpp
+++ b/base/Status.cpp
@@ -82,11 +82,17 @@ Status Status::ok() {
}
Status Status::fromExceptionCode(int32_t exceptionCode) {
+ if (exceptionCode == EX_TRANSACTION_FAILED) {
+ return Status(exceptionCode, FAILED_TRANSACTION);
+ }
return Status(exceptionCode, OK);
}
Status Status::fromExceptionCode(int32_t exceptionCode,
const char *message) {
+ if (exceptionCode == EX_TRANSACTION_FAILED) {
+ return Status(exceptionCode, FAILED_TRANSACTION, message);
+ }
return Status(exceptionCode, OK, message);
}
@@ -107,7 +113,7 @@ Status::Status(int32_t exceptionCode, int32_t errorCode, const char *message)
void Status::setException(int32_t ex, const char *message) {
mException = ex;
- mErrorCode = NO_ERROR; // an exception, not a transaction failure.
+ mErrorCode = ex == EX_TRANSACTION_FAILED ? FAILED_TRANSACTION : NO_ERROR;
mMessage = message;
}