diff options
| author | 2021-12-17 01:32:47 +0900 | |
|---|---|---|
| committer | 2021-12-20 13:43:26 +0900 | |
| commit | dcb1e3b9136180bb415f967c120de48ee0b8c94e (patch) | |
| tree | 50d86e1b507585c26d5757def369dce717e8210c | |
| parent | db0515696f63bf4a4652c7c0f69e69dea932e481 (diff) | |
Explicit cast from android::Base::Errno to status_t
Previously, Result<T>.error().code() returned int and this was
convertible to status_t which is an alias of int.
However, this actually was type unsafe because the return type of
error().code() was actually mean to be that of errno. errno and
status_t are both int, but their meanings are very different.
To handle such problems, Result<T>.error().code() now returns
android::base::Errno which is a wrapper to errno, but not to other
int-based types like status_t and StatusCode.
Eventually, Result<T> used here should be changed into Result<T,
StatusT> where StatusT is a type-safe wrapper class to status_t that
implements the contract to be used as the error type in
android::base::Result.
Unfortunately, since the use of Result<T> is so wide spread, in this
change, I aim to only fix the build error in this CL.
Bug: 209929099
Test: m
Change-Id: Ic10ab8ed52f6827ba3ac6fb7d6e031585827562f
| -rw-r--r-- | services/core/jni/com_android_server_input_InputManagerService.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp index bb9740b60f78..7066d5680f66 100644 --- a/services/core/jni/com_android_server_input_InputManagerService.cpp +++ b/services/core/jni/com_android_server_input_InputManagerService.cpp @@ -1585,7 +1585,7 @@ static jobject nativeCreateInputChannel(JNIEnv* env, jclass /* clazz */, jlong p if (!inputChannel.ok()) { std::string message = inputChannel.error().message(); - message += StringPrintf(" Status=%d", inputChannel.error().code()); + message += StringPrintf(" Status=%d", static_cast<int>(inputChannel.error().code())); jniThrowRuntimeException(env, message.c_str()); return nullptr; } @@ -1619,7 +1619,7 @@ static jobject nativeCreateInputMonitor(JNIEnv* env, jclass /* clazz */, jlong p if (!inputChannel.ok()) { std::string message = inputChannel.error().message(); - message += StringPrintf(" Status=%d", inputChannel.error().code()); + message += StringPrintf(" Status=%d", static_cast<int>(inputChannel.error().code())); jniThrowRuntimeException(env, message.c_str()); return nullptr; } |