diff options
31 files changed, 211 insertions, 218 deletions
diff --git a/cmds/installd/commands.c b/cmds/installd/commands.c index fc3972e..0a307c9 100644 --- a/cmds/installd/commands.c +++ b/cmds/installd/commands.c @@ -144,7 +144,6 @@ int fix_uid(const char *pkgname, uid_t uid, gid_t gid) { char pkgdir[PKG_PATH_MAX]; struct stat s; - int rc = 0; if ((uid < AID_SYSTEM) || (gid < AID_SYSTEM)) { ALOGE("invalid uid/gid: %d %d\n", uid, gid); @@ -646,8 +645,40 @@ static void run_dexopt(int zip_fd, int odex_fd, const char* input_file_name, ALOGE("execl(%s) failed: %s\n", DEX_OPT_BIN, strerror(errno)); } +static int split_count(const char *str) +{ + char *ctx; + int count = 0; + char buf[PROPERTY_VALUE_MAX]; + + strncpy(buf, str, sizeof(buf)); + char *pBuf = buf; + + while(strtok_r(pBuf, " ", &ctx) != NULL) { + count++; + pBuf = NULL; + } + + return count; +} + +static int split(char *buf, char **argv) +{ + char *ctx; + int count = 0; + char *tok; + char *pBuf = buf; + + while((tok = strtok_r(pBuf, " ", &ctx)) != NULL) { + argv[count++] = tok; + pBuf = NULL; + } + + return count; +} + static void run_patchoat(int input_fd, int oat_fd, const char* input_file_name, - const char* output_file_name, const char *pkgname, const char *instruction_set) + const char* output_file_name, const char *pkgname __unused, const char *instruction_set) { static const int MAX_INT_LEN = 12; // '-'+10dig+'\0' -OR- 0x+8dig static const unsigned int MAX_INSTRUCTION_SET_LEN = 7; @@ -669,7 +700,7 @@ static void run_patchoat(int input_fd, int oat_fd, const char* input_file_name, sprintf(instruction_set_arg, "--instruction-set=%s", instruction_set); sprintf(output_oat_fd_arg, "--output-oat-fd=%d", oat_fd); sprintf(input_oat_fd_arg, "--input-oat-fd=%d", input_fd); - ALOGE("Running %s isa=%s in-fd=%d (%s) out-fd=%d (%s)\n", + ALOGV("Running %s isa=%s in-fd=%d (%s) out-fd=%d (%s)\n", PATCHOAT_BIN, instruction_set, input_fd, input_file_name, oat_fd, output_file_name); /* patchoat, patched-image-location, no-lock, isa, input-fd, output-fd */ @@ -718,7 +749,8 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, dex2oat_isa_features, NULL) > 0; char dex2oat_flags[PROPERTY_VALUE_MAX]; - bool have_dex2oat_flags = property_get("dalvik.vm.dex2oat-flags", dex2oat_flags, NULL) > 0; + int dex2oat_flags_count = property_get("dalvik.vm.dex2oat-flags", + dex2oat_flags, NULL) <= 0 ? 0 : split_count(dex2oat_flags); ALOGV("dalvik.vm.dex2oat-flags=%s\n", dex2oat_flags); // If we booting without the real /data, don't spend time compiling. @@ -796,7 +828,7 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, + (have_dex2oat_Xms_flag ? 2 : 0) + (have_dex2oat_Xmx_flag ? 2 : 0) + (have_dex2oat_compiler_filter_flag ? 1 : 0) - + (have_dex2oat_flags ? 1 : 0)]; + + dex2oat_flags_count]; int i = 0; argv[i++] = (char*)DEX2OAT_BIN; argv[i++] = zip_fd_arg; @@ -824,14 +856,14 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, if (have_dex2oat_compiler_filter_flag) { argv[i++] = dex2oat_compiler_filter_arg; } - if (have_dex2oat_flags) { - argv[i++] = dex2oat_flags; + if (dex2oat_flags_count) { + i += split(dex2oat_flags, argv + i); } // Do not add after dex2oat_flags, they should override others for debugging. argv[i] = NULL; execv(DEX2OAT_BIN, (char* const *)argv); - ALOGE("execl(%s) failed: %s\n", DEX2OAT_BIN, strerror(errno)); + ALOGE("execv(%s) failed: %s\n", DEX2OAT_BIN, strerror(errno)); } static int wait_child(pid_t pid) @@ -1542,7 +1574,7 @@ int restorecon_data(const char* pkgName, const char* seinfo, uid_t uid) continue; } - if (selinux_android_restorecon_pkgdir(pkgdir, seinfo, uid, flags) < 0) { + if (selinux_android_restorecon_pkgdir(pkgdir, seinfo, s.st_uid, flags) < 0) { ALOGE("restorecon failed for %s: %s\n", pkgdir, strerror(errno)); ret |= -1; } diff --git a/cmds/installd/installd.c b/cmds/installd/installd.c index 933338f..4864516 100644 --- a/cmds/installd/installd.c +++ b/cmds/installd/installd.c @@ -26,58 +26,58 @@ #define TOKEN_MAX 8 /* max number of arguments in buffer */ #define REPLY_MAX 256 /* largest reply allowed */ -static int do_ping(char **arg, char reply[REPLY_MAX]) +static int do_ping(char **arg __unused, char reply[REPLY_MAX] __unused) { return 0; } -static int do_install(char **arg, char reply[REPLY_MAX]) +static int do_install(char **arg, char reply[REPLY_MAX] __unused) { return install(arg[0], atoi(arg[1]), atoi(arg[2]), arg[3]); /* pkgname, uid, gid, seinfo */ } -static int do_dexopt(char **arg, char reply[REPLY_MAX]) +static int do_dexopt(char **arg, char reply[REPLY_MAX] __unused) { /* apk_path, uid, is_public, pkgname, instruction_set, vm_safe_mode, should_relocate */ return dexopt(arg[0], atoi(arg[1]), atoi(arg[2]), arg[3], arg[4], atoi(arg[5]), 0); } -static int do_move_dex(char **arg, char reply[REPLY_MAX]) +static int do_move_dex(char **arg, char reply[REPLY_MAX] __unused) { return move_dex(arg[0], arg[1], arg[2]); /* src, dst, instruction_set */ } -static int do_rm_dex(char **arg, char reply[REPLY_MAX]) +static int do_rm_dex(char **arg, char reply[REPLY_MAX] __unused) { return rm_dex(arg[0], arg[1]); /* pkgname, instruction_set */ } -static int do_remove(char **arg, char reply[REPLY_MAX]) +static int do_remove(char **arg, char reply[REPLY_MAX] __unused) { return uninstall(arg[0], atoi(arg[1])); /* pkgname, userid */ } -static int do_rename(char **arg, char reply[REPLY_MAX]) +static int do_rename(char **arg, char reply[REPLY_MAX] __unused) { return renamepkg(arg[0], arg[1]); /* oldpkgname, newpkgname */ } -static int do_fixuid(char **arg, char reply[REPLY_MAX]) +static int do_fixuid(char **arg, char reply[REPLY_MAX] __unused) { return fix_uid(arg[0], atoi(arg[1]), atoi(arg[2])); /* pkgname, uid, gid */ } -static int do_free_cache(char **arg, char reply[REPLY_MAX]) /* TODO int:free_size */ +static int do_free_cache(char **arg, char reply[REPLY_MAX] __unused) /* TODO int:free_size */ { return free_cache((int64_t)atoll(arg[0])); /* free_size */ } -static int do_rm_cache(char **arg, char reply[REPLY_MAX]) +static int do_rm_cache(char **arg, char reply[REPLY_MAX] __unused) { return delete_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ } -static int do_rm_code_cache(char **arg, char reply[REPLY_MAX]) +static int do_rm_code_cache(char **arg, char reply[REPLY_MAX] __unused) { return delete_code_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ } @@ -103,38 +103,38 @@ static int do_get_size(char **arg, char reply[REPLY_MAX]) return res; } -static int do_rm_user_data(char **arg, char reply[REPLY_MAX]) +static int do_rm_user_data(char **arg, char reply[REPLY_MAX] __unused) { return delete_user_data(arg[0], atoi(arg[1])); /* pkgname, userid */ } -static int do_mk_user_data(char **arg, char reply[REPLY_MAX]) +static int do_mk_user_data(char **arg, char reply[REPLY_MAX] __unused) { return make_user_data(arg[0], atoi(arg[1]), atoi(arg[2]), arg[3]); /* pkgname, uid, userid, seinfo */ } -static int do_mk_user_config(char **arg, char reply[REPLY_MAX]) +static int do_mk_user_config(char **arg, char reply[REPLY_MAX] __unused) { return make_user_config(atoi(arg[0])); /* userid */ } -static int do_rm_user(char **arg, char reply[REPLY_MAX]) +static int do_rm_user(char **arg, char reply[REPLY_MAX] __unused) { return delete_user(atoi(arg[0])); /* userid */ } -static int do_movefiles(char **arg, char reply[REPLY_MAX]) +static int do_movefiles(char **arg __unused, char reply[REPLY_MAX] __unused) { return movefiles(); } -static int do_linklib(char **arg, char reply[REPLY_MAX]) +static int do_linklib(char **arg, char reply[REPLY_MAX] __unused) { return linklib(arg[0], arg[1], atoi(arg[2])); } -static int do_idmap(char **arg, char reply[REPLY_MAX]) +static int do_idmap(char **arg, char reply[REPLY_MAX] __unused) { return idmap(arg[0], arg[1], atoi(arg[2])); } @@ -145,7 +145,7 @@ static int do_restorecon_data(char **arg, char reply[REPLY_MAX] __attribute__((u /* pkgName, seinfo, uid*/ } -static int do_patchoat(char **arg, char reply[REPLY_MAX]) { +static int do_patchoat(char **arg, char reply[REPLY_MAX] __unused) { /* apk_path, uid, is_public, pkgname, instruction_set, vm_safe_mode, should_relocate */ return dexopt(arg[0], atoi(arg[1]), atoi(arg[2]), arg[3], arg[4], 0, 1); } @@ -651,11 +651,11 @@ static int log_callback(int type, const char *fmt, ...) { return 0; } -int main(const int argc, const char *argv[]) { +int main(const int argc __unused, const char *argv[] __unused) { char buf[BUFFER_MAX]; struct sockaddr addr; socklen_t alen; - int lsocket, s, count; + int lsocket, s; int selinux_enabled = (is_selinux_enabled() > 0); ALOGI("installd firing up\n"); diff --git a/cmds/installd/tests/Android.mk b/cmds/installd/tests/Android.mk index 4faf3c0..7300b29 100644 --- a/cmds/installd/tests/Android.mk +++ b/cmds/installd/tests/Android.mk @@ -1,6 +1,7 @@ # Build the unit tests for installd LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk # Build the unit tests. test_src_files := \ @@ -9,13 +10,10 @@ test_src_files := \ shared_libraries := \ libutils \ libcutils \ - libstlport static_libraries := \ libinstalld \ libdiskusage \ - libgtest \ - libgtest_main c_includes := \ frameworks/native/cmds/installd diff --git a/cmds/installd/utils.c b/cmds/installd/utils.c index e381aef..8f366a0 100644 --- a/cmds/installd/utils.c +++ b/cmds/installd/utils.c @@ -163,7 +163,7 @@ int create_user_config_path(char path[PATH_MAX], userid_t userid) { int create_move_path(char path[PKG_PATH_MAX], const char* pkgname, const char* leaf, - userid_t userid) + userid_t userid __unused) { if ((android_data_dir.len + strlen(PRIMARY_USER_PREFIX) + strlen(pkgname) + strlen(leaf) + 1) >= PKG_PATH_MAX) { @@ -239,7 +239,7 @@ static int _delete_dir_contents(DIR *d, } if (de->d_type == DT_DIR) { - int r, subfd; + int subfd; DIR *subdir; /* always skip "." and ".." */ @@ -881,7 +881,7 @@ void clear_cache_files(cache_t* cache, int64_t free_size) void finish_cache_collection(cache_t* cache) { - size_t i; + CACHE_NOISY(size_t i;) CACHE_NOISY(ALOGI("clear_cache_files: %d dirs, %d files\n", cache->numDirs, cache->numFiles)); CACHE_NOISY( @@ -1101,7 +1101,6 @@ char *build_string3(char *s1, char *s2, char *s3) { /* Ensure that /data/media directories are prepared for given user. */ int ensure_media_user_dirs(userid_t userid) { char media_user_path[PATH_MAX]; - char path[PATH_MAX]; // Ensure /data/media/<userid> exists create_user_media_path(media_user_path, userid); @@ -1114,7 +1113,6 @@ int ensure_media_user_dirs(userid_t userid) { int ensure_config_user_dirs(userid_t userid) { char config_user_path[PATH_MAX]; - char path[PATH_MAX]; // writable by system, readable by any app within the same user const int uid = multiuser_get_uid(userid, AID_SYSTEM); diff --git a/include/gui/BufferQueueCore.h b/include/gui/BufferQueueCore.h index 1050e3b..1d975c0 100644 --- a/include/gui/BufferQueueCore.h +++ b/include/gui/BufferQueueCore.h @@ -29,11 +29,11 @@ #include <utils/Trace.h> #include <utils/Vector.h> -#define BQ_LOGV(x, ...) ALOGV("[%s] "x, mConsumerName.string(), ##__VA_ARGS__) -#define BQ_LOGD(x, ...) ALOGD("[%s] "x, mConsumerName.string(), ##__VA_ARGS__) -#define BQ_LOGI(x, ...) ALOGI("[%s] "x, mConsumerName.string(), ##__VA_ARGS__) -#define BQ_LOGW(x, ...) ALOGW("[%s] "x, mConsumerName.string(), ##__VA_ARGS__) -#define BQ_LOGE(x, ...) ALOGE("[%s] "x, mConsumerName.string(), ##__VA_ARGS__) +#define BQ_LOGV(x, ...) ALOGV("[%s] " x, mConsumerName.string(), ##__VA_ARGS__) +#define BQ_LOGD(x, ...) ALOGD("[%s] " x, mConsumerName.string(), ##__VA_ARGS__) +#define BQ_LOGI(x, ...) ALOGI("[%s] " x, mConsumerName.string(), ##__VA_ARGS__) +#define BQ_LOGW(x, ...) ALOGW("[%s] " x, mConsumerName.string(), ##__VA_ARGS__) +#define BQ_LOGE(x, ...) ALOGE("[%s] " x, mConsumerName.string(), ##__VA_ARGS__) #define ATRACE_BUFFER_INDEX(index) \ if (ATRACE_ENABLED()) { \ diff --git a/include/gui/ISurfaceComposer.h b/include/gui/ISurfaceComposer.h index 51717a4..f04a848 100644 --- a/include/gui/ISurfaceComposer.h +++ b/include/gui/ISurfaceComposer.h @@ -39,7 +39,7 @@ namespace android { class ComposerState; class DisplayState; struct DisplayInfo; -class DisplayStatInfo; +struct DisplayStatInfo; class IDisplayEventConnection; class IMemoryHeap; class Rect; diff --git a/libs/binder/Binder.cpp b/libs/binder/Binder.cpp index 2554351..296a98b 100644 --- a/libs/binder/Binder.cpp +++ b/libs/binder/Binder.cpp @@ -160,10 +160,18 @@ void BBinder::attachObject( e->mObjects.attach(objectID, object, cleanupCookie, func); } +// The C11 standard doesn't allow atomic loads from const fields, +// though C++11 does. Fudge it until standards get straightened out. +static inline uintptr_t load_const_atomic(const atomic_uintptr_t* p, + memory_order mo) { + atomic_uintptr_t* non_const_p = const_cast<atomic_uintptr_t*>(p); + return atomic_load_explicit(non_const_p, mo); +} + void* BBinder::findObject(const void* objectID) const { Extras* e = reinterpret_cast<Extras*>( - atomic_load_explicit(&mExtras, memory_order_acquire)); + load_const_atomic(&mExtras, memory_order_acquire)); if (!e) return NULL; AutoMutex _l(e->mLock); diff --git a/libs/binder/IInterface.cpp b/libs/binder/IInterface.cpp index 29acf5d..99a9ffe 100644 --- a/libs/binder/IInterface.cpp +++ b/libs/binder/IInterface.cpp @@ -29,12 +29,12 @@ IInterface::~IInterface() { sp<IBinder> IInterface::asBinder() { - return this ? onAsBinder() : NULL; + return onAsBinder(); } sp<const IBinder> IInterface::asBinder() const { - return this ? const_cast<IInterface*>(this)->onAsBinder() : NULL; + return const_cast<IInterface*>(this)->onAsBinder(); } // --------------------------------------------------------------------------- diff --git a/libs/binder/IPCThreadState.cpp b/libs/binder/IPCThreadState.cpp index dd04dcf..442b92c 100644 --- a/libs/binder/IPCThreadState.cpp +++ b/libs/binder/IPCThreadState.cpp @@ -682,7 +682,7 @@ status_t IPCThreadState::clearDeathNotification(int32_t handle, BpBinder* proxy) IPCThreadState::IPCThreadState() : mProcess(ProcessState::self()), - mMyThreadId(androidGetTid()), + mMyThreadId(gettid()), mStrictModePolicy(0), mLastTransactionBinderFlags(0) { diff --git a/libs/gui/BufferItemConsumer.cpp b/libs/gui/BufferItemConsumer.cpp index fe50c55..2d976e5 100644 --- a/libs/gui/BufferItemConsumer.cpp +++ b/libs/gui/BufferItemConsumer.cpp @@ -21,11 +21,11 @@ #include <gui/BufferItemConsumer.h> -#define BI_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGD(x, ...) ALOGD("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGI(x, ...) ALOGI("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGW(x, ...) ALOGW("[%s] "x, mName.string(), ##__VA_ARGS__) -#define BI_LOGE(x, ...) ALOGE("[%s] "x, mName.string(), ##__VA_ARGS__) +#define BI_LOGV(x, ...) ALOGV("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGD(x, ...) ALOGD("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGI(x, ...) ALOGI("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGW(x, ...) ALOGW("[%s] " x, mName.string(), ##__VA_ARGS__) +#define BI_LOGE(x, ...) ALOGE("[%s] " x, mName.string(), ##__VA_ARGS__) namespace android { diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index f19b6c7..e476c9a 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -39,11 +39,11 @@ #include <utils/Trace.h> // Macros for including the ConsumerBase name in log messages -#define CB_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CB_LOGD(x, ...) ALOGD("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CB_LOGI(x, ...) ALOGI("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CB_LOGW(x, ...) ALOGW("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CB_LOGE(x, ...) ALOGE("[%s] "x, mName.string(), ##__VA_ARGS__) +#define CB_LOGV(x, ...) ALOGV("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CB_LOGD(x, ...) ALOGD("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CB_LOGI(x, ...) ALOGI("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CB_LOGW(x, ...) ALOGW("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CB_LOGE(x, ...) ALOGE("[%s] " x, mName.string(), ##__VA_ARGS__) namespace android { diff --git a/libs/gui/CpuConsumer.cpp b/libs/gui/CpuConsumer.cpp index cefd7f1..e55e108 100644 --- a/libs/gui/CpuConsumer.cpp +++ b/libs/gui/CpuConsumer.cpp @@ -22,11 +22,11 @@ #include <utils/Log.h> #include <gui/CpuConsumer.h> -#define CC_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CC_LOGD(x, ...) ALOGD("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CC_LOGI(x, ...) ALOGI("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CC_LOGW(x, ...) ALOGW("[%s] "x, mName.string(), ##__VA_ARGS__) -#define CC_LOGE(x, ...) ALOGE("[%s] "x, mName.string(), ##__VA_ARGS__) +#define CC_LOGV(x, ...) ALOGV("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CC_LOGD(x, ...) ALOGD("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CC_LOGI(x, ...) ALOGI("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CC_LOGW(x, ...) ALOGW("[%s] " x, mName.string(), ##__VA_ARGS__) +#define CC_LOGE(x, ...) ALOGE("[%s] " x, mName.string(), ##__VA_ARGS__) namespace android { diff --git a/libs/gui/GLConsumer.cpp b/libs/gui/GLConsumer.cpp index 318c087..b886c5b 100644 --- a/libs/gui/GLConsumer.cpp +++ b/libs/gui/GLConsumer.cpp @@ -47,11 +47,11 @@ EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint na namespace android { // Macros for including the GLConsumer name in log messages -#define ST_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__) -#define ST_LOGD(x, ...) ALOGD("[%s] "x, mName.string(), ##__VA_ARGS__) -#define ST_LOGI(x, ...) ALOGI("[%s] "x, mName.string(), ##__VA_ARGS__) -#define ST_LOGW(x, ...) ALOGW("[%s] "x, mName.string(), ##__VA_ARGS__) -#define ST_LOGE(x, ...) ALOGE("[%s] "x, mName.string(), ##__VA_ARGS__) +#define ST_LOGV(x, ...) ALOGV("[%s] " x, mName.string(), ##__VA_ARGS__) +#define ST_LOGD(x, ...) ALOGD("[%s] " x, mName.string(), ##__VA_ARGS__) +#define ST_LOGI(x, ...) ALOGI("[%s] " x, mName.string(), ##__VA_ARGS__) +#define ST_LOGW(x, ...) ALOGW("[%s] " x, mName.string(), ##__VA_ARGS__) +#define ST_LOGE(x, ...) ALOGE("[%s] " x, mName.string(), ##__VA_ARGS__) static const struct { size_t width, height; diff --git a/libs/gui/ISurfaceComposerClient.cpp b/libs/gui/ISurfaceComposerClient.cpp index 3da6423..f199e9f 100644 --- a/libs/gui/ISurfaceComposerClient.cpp +++ b/libs/gui/ISurfaceComposerClient.cpp @@ -114,7 +114,7 @@ status_t BnSurfaceComposerClient::onTransact( status_t result = createSurface(name, w, h, format, flags, &handle, &gbp); reply->writeStrongBinder(handle); - reply->writeStrongBinder(gbp->asBinder()); + reply->writeStrongBinder(gbp != NULL ? gbp->asBinder() : NULL); reply->writeInt32(result); return NO_ERROR; } break; diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp index e95d8b6..9d3f116 100644 --- a/libs/gui/LayerState.cpp +++ b/libs/gui/LayerState.cpp @@ -75,7 +75,7 @@ status_t ComposerState::read(const Parcel& input) { status_t DisplayState::write(Parcel& output) const { output.writeStrongBinder(token); - output.writeStrongBinder(surface->asBinder()); + output.writeStrongBinder(surface != NULL ? surface->asBinder() : NULL); output.writeInt32(what); output.writeInt32(layerStack); output.writeInt32(orientation); diff --git a/libs/gui/tests/Android.mk b/libs/gui/tests/Android.mk index e460290..128a32a 100644 --- a/libs/gui/tests/Android.mk +++ b/libs/gui/tests/Android.mk @@ -1,6 +1,7 @@ # Build the unit tests, LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_MODULE := libgui_test @@ -31,17 +32,10 @@ LOCAL_SHARED_LIBRARIES := \ libbinder \ libcutils \ libgui \ - libstlport \ libsync \ libui \ libutils \ -LOCAL_C_INCLUDES := \ - bionic \ - bionic/libstdc++/include \ - external/gtest/include \ - external/stlport/stlport \ - # Build the binary to $(TARGET_OUT_DATA_NATIVE_TESTS)/$(LOCAL_MODULE) # to integrate with auto-test framework. include $(BUILD_NATIVE_TEST) diff --git a/libs/input/tests/Android.mk b/libs/input/tests/Android.mk index 9612a65..5bfa3d4 100644 --- a/libs/input/tests/Android.mk +++ b/libs/input/tests/Android.mk @@ -1,6 +1,5 @@ # Build the unit tests. LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) # Build the unit tests. test_src_files := \ @@ -14,14 +13,10 @@ shared_libraries := \ libutils \ libbinder \ libui \ - libstlport - -static_libraries := \ - libgtest \ - libgtest_main $(foreach file,$(test_src_files), \ $(eval include $(CLEAR_VARS)) \ + $(eval LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk) \ $(eval LOCAL_SHARED_LIBRARIES := $(shared_libraries)) \ $(eval LOCAL_STATIC_LIBRARIES := $(static_libraries)) \ $(eval LOCAL_SRC_FILES := $(file)) \ @@ -33,6 +28,7 @@ $(foreach file,$(test_src_files), \ # run. All assertions are static_asserts and will fail during # buildtime if something's wrong. include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SRC_FILES := StructLayout_test.cpp LOCAL_MODULE := StructLayout_test LOCAL_CFLAGS := -std=c++11 -O0 diff --git a/libs/ui/tests/Android.mk b/libs/ui/tests/Android.mk index b0c57db..6438b1f 100644 --- a/libs/ui/tests/Android.mk +++ b/libs/ui/tests/Android.mk @@ -1,31 +1,36 @@ -# Build the unit tests. -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -# Build the unit tests. -test_src_files := \ - Region_test.cpp \ - vec_test.cpp \ - mat_test.cpp - -shared_libraries := \ - libutils \ - libui +# +# Copyright (C) 2014 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# -static_libraries := \ - libgtest \ - libgtest_main +LOCAL_PATH := $(call my-dir) -$(foreach file,$(test_src_files), \ - $(eval include $(CLEAR_VARS)) \ - $(eval LOCAL_SHARED_LIBRARIES := $(shared_libraries)) \ - $(eval LOCAL_STATIC_LIBRARIES := $(static_libraries)) \ - $(eval LOCAL_SRC_FILES := $(file)) \ - $(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \ - $(eval include $(BUILD_NATIVE_TEST)) \ -) +include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk +LOCAL_SHARED_LIBRARIES := libui +LOCAL_SRC_FILES := Region_test.cpp +LOCAL_MODULE := Region_test +include $(BUILD_NATIVE_TEST) -# Build the unit tests. +include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk +LOCAL_SRC_FILES := vec_test.cpp +LOCAL_MODULE := vec_test +include $(BUILD_NATIVE_TEST) -# Build the manual test programs. -include $(call all-makefiles-under, $(LOCAL_PATH)) +include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk +LOCAL_SRC_FILES := mat_test.cpp +LOCAL_MODULE := mat_test +include $(BUILD_NATIVE_TEST) diff --git a/libs/ui/tests/vec_test.cpp b/libs/ui/tests/vec_test.cpp index 00f737e..454c999 100644 --- a/libs/ui/tests/vec_test.cpp +++ b/libs/ui/tests/vec_test.cpp @@ -16,17 +16,18 @@ #define LOG_TAG "RegionTest" +#include <math.h> #include <stdlib.h> + #include <ui/Region.h> #include <ui/Rect.h> -#include <gtest/gtest.h> - #include <ui/vec4.h> +#include <gtest/gtest.h> + namespace android { class VecTest : public testing::Test { -protected: }; TEST_F(VecTest, Basics) { diff --git a/opengl/libs/Android.mk b/opengl/libs/Android.mk index cc5d544..2c66f3d 100644 --- a/opengl/libs/Android.mk +++ b/opengl/libs/Android.mk @@ -77,6 +77,7 @@ LOCAL_SRC_FILES:= \ GLES_CM/gl.cpp.arm \ # +LOCAL_CLANG := false LOCAL_SHARED_LIBRARIES += libcutils liblog libEGL LOCAL_MODULE:= libGLESv1_CM @@ -101,6 +102,7 @@ LOCAL_SRC_FILES:= \ GLES2/gl2.cpp.arm \ # +LOCAL_CLANG := false LOCAL_SHARED_LIBRARIES += libcutils libutils liblog libEGL LOCAL_MODULE:= libGLESv2 diff --git a/opengl/libs/GLES2/gl2.cpp b/opengl/libs/GLES2/gl2.cpp index b07228f..0157bfe 100644 --- a/opengl/libs/GLES2/gl2.cpp +++ b/opengl/libs/GLES2/gl2.cpp @@ -180,7 +180,7 @@ const GLubyte * glGetString(GLenum name) const GLubyte * ret = egl_get_string_for_current_context(name); if (ret == NULL) { gl_hooks_t::gl_t const * const _c = &getGlThreadSpecific()->gl; - ret = _c->glGetString(name); + if(_c) ret = _c->glGetString(name); } return ret; } diff --git a/opengl/libs/GLES_trace/Android.mk b/opengl/libs/GLES_trace/Android.mk index 846932d..d74f77a 100644 --- a/opengl/libs/GLES_trace/Android.mk +++ b/opengl/libs/GLES_trace/Android.mk @@ -1,6 +1,7 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SRC_FILES := \ src/gltrace_api.cpp \ @@ -15,14 +16,12 @@ LOCAL_SRC_FILES := \ LOCAL_C_INCLUDES := \ $(LOCAL_PATH) \ $(LOCAL_PATH)/../ \ - external/stlport/stlport \ external/protobuf/src \ external \ - bionic LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI LOCAL_STATIC_LIBRARIES := libprotobuf-cpp-2.3.0-lite liblzf -LOCAL_SHARED_LIBRARIES := libcutils libutils liblog libstlport +LOCAL_SHARED_LIBRARIES := libcutils libutils liblog LOCAL_CFLAGS += -DLOG_TAG=\"libGLES_trace\" @@ -32,4 +31,5 @@ LOCAL_C_INCLUDES += bionic/libc/private LOCAL_MODULE:= libGLES_trace LOCAL_MODULE_TAGS := optional +include external/stlport/libstlport.mk include $(BUILD_SHARED_LIBRARY) diff --git a/opengl/tests/EGLTest/Android.mk b/opengl/tests/EGLTest/Android.mk index f37efec..80e4867 100644 --- a/opengl/tests/EGLTest/Android.mk +++ b/opengl/tests/EGLTest/Android.mk @@ -1,6 +1,7 @@ # Build the unit tests. LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_MODULE := EGL_test @@ -14,27 +15,18 @@ LOCAL_SHARED_LIBRARIES := \ libEGL \ libcutils \ libbinder \ - libstlport \ libutils \ libgui \ -LOCAL_STATIC_LIBRARIES := \ - libgtest \ - libgtest_main \ - LOCAL_C_INCLUDES := \ - bionic \ bionic/libc/private \ - bionic/libstdc++/include \ - external/gtest/include \ - external/stlport/stlport \ frameworks/native/opengl/libs \ frameworks/native/opengl/libs/EGL \ # gold in binutils 2.22 will warn about the usage of mktemp LOCAL_LDFLAGS += -Wl,--no-fatal-warnings -include $(BUILD_EXECUTABLE) +include $(BUILD_NATIVE_TEST) # Include subdirectory makefiles # ============================================================ diff --git a/opengl/tests/hwc/Android.mk b/opengl/tests/hwc/Android.mk index 86e1d46..d7d59c6 100644 --- a/opengl/tests/hwc/Android.mk +++ b/opengl/tests/hwc/Android.mk @@ -15,24 +15,20 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_MODULE_TAGS := tests LOCAL_MODULE:= libhwcTest LOCAL_SRC_FILES:= hwcTestLib.cpp LOCAL_C_INCLUDES += system/extras/tests/include \ - bionic \ - bionic/libstdc++/include \ - external/stlport/stlport \ $(call include-path-for, opengl-tests-includes) LOCAL_CFLAGS := -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES -LOCAL_SHARED_LIBRARIES += libcutils libutils libstlport -LOCAL_STATIC_LIBRARIES += libglTest - - +include external/stlport/libstlport.mk include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SRC_FILES:= hwcStress.cpp LOCAL_SHARED_LIBRARIES := \ @@ -65,6 +61,7 @@ LOCAL_CFLAGS := -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES include $(BUILD_NATIVE_TEST) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SRC_FILES:= hwcRects.cpp LOCAL_SHARED_LIBRARIES := \ @@ -95,6 +92,7 @@ LOCAL_CFLAGS := -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES include $(BUILD_NATIVE_TEST) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SRC_FILES:= hwcColorEquiv.cpp LOCAL_SHARED_LIBRARIES := \ @@ -125,6 +123,7 @@ LOCAL_CFLAGS := -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES include $(BUILD_NATIVE_TEST) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_SRC_FILES:= hwcCommit.cpp LOCAL_SHARED_LIBRARIES := \ diff --git a/opengl/tests/lib/Android.mk b/opengl/tests/lib/Android.mk index a2752cd..e5124ad 100644 --- a/opengl/tests/lib/Android.mk +++ b/opengl/tests/lib/Android.mk @@ -15,18 +15,13 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_MODULE_TAGS := tests LOCAL_MODULE:= libglTest LOCAL_SRC_FILES:= glTestLib.cpp WindowSurface.cpp LOCAL_C_INCLUDES += system/extras/tests/include \ - bionic \ - bionic/libstdc++/include \ - external/stlport/stlport \ $(call include-path-for, opengl-tests-includes) LOCAL_CFLAGS := -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES -LOCAL_SHARED_LIBRARIES += libcutils libutils libstlport - - include $(BUILD_STATIC_LIBRARY) diff --git a/services/inputflinger/tests/InputDispatcher_test.cpp b/services/inputflinger/tests/InputDispatcher_test.cpp index 7aac6ed..9b68986 100644 --- a/services/inputflinger/tests/InputDispatcher_test.cpp +++ b/services/inputflinger/tests/InputDispatcher_test.cpp @@ -49,51 +49,49 @@ public: } private: - virtual void notifyConfigurationChanged(nsecs_t when) { + virtual void notifyConfigurationChanged(nsecs_t) { } - virtual nsecs_t notifyANR(const sp<InputApplicationHandle>& inputApplicationHandle, - const sp<InputWindowHandle>& inputWindowHandle, - const String8& reason) { + virtual nsecs_t notifyANR(const sp<InputApplicationHandle>&, + const sp<InputWindowHandle>&, + const String8&) { return 0; } - virtual void notifyInputChannelBroken(const sp<InputWindowHandle>& inputWindowHandle) { + virtual void notifyInputChannelBroken(const sp<InputWindowHandle>&) { } virtual void getDispatcherConfiguration(InputDispatcherConfiguration* outConfig) { *outConfig = mConfig; } - virtual bool filterInputEvent(const InputEvent* inputEvent, uint32_t policyFlags) { + virtual bool filterInputEvent(const InputEvent*, uint32_t) { return true; } - virtual void interceptKeyBeforeQueueing(const KeyEvent* keyEvent, uint32_t& policyFlags) { + virtual void interceptKeyBeforeQueueing(const KeyEvent*, uint32_t&) { } - virtual void interceptMotionBeforeQueueing(nsecs_t when, uint32_t& policyFlags) { + virtual void interceptMotionBeforeQueueing(nsecs_t, uint32_t&) { } - virtual nsecs_t interceptKeyBeforeDispatching(const sp<InputWindowHandle>& inputWindowHandle, - const KeyEvent* keyEvent, uint32_t policyFlags) { + virtual nsecs_t interceptKeyBeforeDispatching(const sp<InputWindowHandle>&, + const KeyEvent*, uint32_t) { return 0; } - virtual bool dispatchUnhandledKey(const sp<InputWindowHandle>& inputWindowHandle, - const KeyEvent* keyEvent, uint32_t policyFlags, KeyEvent* outFallbackKeyEvent) { + virtual bool dispatchUnhandledKey(const sp<InputWindowHandle>&, + const KeyEvent*, uint32_t, KeyEvent*) { return false; } - virtual void notifySwitch(nsecs_t when, - uint32_t switchValues, uint32_t switchMask, uint32_t policyFlags) { + virtual void notifySwitch(nsecs_t, uint32_t, uint32_t, uint32_t) { } - virtual void pokeUserActivity(nsecs_t eventTime, int32_t eventType) { + virtual void pokeUserActivity(nsecs_t, int32_t) { } - virtual bool checkInjectEventsPermissionNonReentrant( - int32_t injectorPid, int32_t injectorUid) { + virtual bool checkInjectEventsPermissionNonReentrant(int32_t, int32_t) { return false; } }; diff --git a/services/inputflinger/tests/InputReader_test.cpp b/services/inputflinger/tests/InputReader_test.cpp index c6eb1fd..40f51b6 100644 --- a/services/inputflinger/tests/InputReader_test.cpp +++ b/services/inputflinger/tests/InputReader_test.cpp @@ -104,17 +104,16 @@ private: if (mY > mMaxY) mY = mMaxY; } - virtual void fade(Transition transition) { + virtual void fade(Transition) { } - virtual void unfade(Transition transition) { + virtual void unfade(Transition) { } - virtual void setPresentation(Presentation presentation) { + virtual void setPresentation(Presentation) { } - virtual void setSpots(const PointerCoords* spotCoords, - const uint32_t* spotIdToIndex, BitSet32 spotIdBits) { + virtual void setSpots(const PointerCoords*, const uint32_t*, BitSet32) { } virtual void clearSpots() { @@ -196,11 +195,11 @@ private: mInputDevices = inputDevices; } - virtual sp<KeyCharacterMap> getKeyboardLayoutOverlay(const InputDeviceIdentifier& identifier) { + virtual sp<KeyCharacterMap> getKeyboardLayoutOverlay(const InputDeviceIdentifier&) { return NULL; } - virtual String8 getDeviceAlias(const InputDeviceIdentifier& identifier) { + virtual String8 getDeviceAlias(const InputDeviceIdentifier&) { return String8::empty(); } }; @@ -482,7 +481,7 @@ private: return device ? device->identifier : InputDeviceIdentifier(); } - virtual int32_t getDeviceControllerNumber(int32_t deviceId) const { + virtual int32_t getDeviceControllerNumber(int32_t) const { return 0; } @@ -515,7 +514,7 @@ private: return false; } - virtual bool hasInputProperty(int32_t deviceId, int property) const { + virtual bool hasInputProperty(int32_t, int) const { return false; } @@ -553,8 +552,7 @@ private: return NULL; } - virtual status_t mapAxis(int32_t deviceId, int32_t scanCode, - AxisInfo* outAxisInfo) const { + virtual status_t mapAxis(int32_t, int32_t, AxisInfo*) const { return NAME_NOT_FOUND; } @@ -562,7 +560,7 @@ private: mExcludedDevices = devices; } - virtual size_t getEvents(int timeoutMillis, RawEvent* buffer, size_t bufferSize) { + virtual size_t getEvents(int, RawEvent* buffer, size_t) { if (mEvents.empty()) { return 0; } @@ -680,25 +678,25 @@ private: } } - virtual sp<KeyCharacterMap> getKeyCharacterMap(int32_t deviceId) const { + virtual sp<KeyCharacterMap> getKeyCharacterMap(int32_t) const { return NULL; } - virtual bool setKeyboardLayoutOverlay(int32_t deviceId, const sp<KeyCharacterMap>& map) { + virtual bool setKeyboardLayoutOverlay(int32_t, const sp<KeyCharacterMap>&) { return false; } - virtual void vibrate(int32_t deviceId, nsecs_t duration) { + virtual void vibrate(int32_t, nsecs_t) { } - virtual void cancelVibrate(int32_t deviceId) { + virtual void cancelVibrate(int32_t) { } - virtual bool isExternal(int32_t deviceId) const { + virtual bool isExternal(int32_t) const { return false; } - virtual void dump(String8& dump) { + virtual void dump(String8&) { } virtual void monitor() { @@ -763,18 +761,17 @@ private: return mListener.get(); } - virtual void disableVirtualKeysUntil(nsecs_t time) { + virtual void disableVirtualKeysUntil(nsecs_t) { } - virtual bool shouldDropVirtualKey(nsecs_t now, - InputDevice* device, int32_t keyCode, int32_t scanCode) { + virtual bool shouldDropVirtualKey(nsecs_t, InputDevice*, int32_t, int32_t) { return false; } virtual void fadePointer() { } - virtual void requestTimeoutAtTime(nsecs_t when) { + virtual void requestTimeoutAtTime(nsecs_t) { } virtual int32_t bumpGeneration() { @@ -867,12 +864,11 @@ private: } } - virtual void configure(nsecs_t when, - const InputReaderConfiguration* config, uint32_t changes) { + virtual void configure(nsecs_t, const InputReaderConfiguration*, uint32_t) { mConfigureWasCalled = true; } - virtual void reset(nsecs_t when) { + virtual void reset(nsecs_t) { mResetWasCalled = true; } @@ -881,22 +877,22 @@ private: mProcessWasCalled = true; } - virtual int32_t getKeyCodeState(uint32_t sourceMask, int32_t keyCode) { + virtual int32_t getKeyCodeState(uint32_t, int32_t keyCode) { ssize_t index = mKeyCodeStates.indexOfKey(keyCode); return index >= 0 ? mKeyCodeStates.valueAt(index) : AKEY_STATE_UNKNOWN; } - virtual int32_t getScanCodeState(uint32_t sourceMask, int32_t scanCode) { + virtual int32_t getScanCodeState(uint32_t, int32_t scanCode) { ssize_t index = mScanCodeStates.indexOfKey(scanCode); return index >= 0 ? mScanCodeStates.valueAt(index) : AKEY_STATE_UNKNOWN; } - virtual int32_t getSwitchState(uint32_t sourceMask, int32_t switchCode) { + virtual int32_t getSwitchState(uint32_t, int32_t switchCode) { ssize_t index = mSwitchStates.indexOfKey(switchCode); return index >= 0 ? mSwitchStates.valueAt(index) : AKEY_STATE_UNKNOWN; } - virtual bool markSupportedKeyCodes(uint32_t sourceMask, size_t numCodes, + virtual bool markSupportedKeyCodes(uint32_t, size_t numCodes, const int32_t* keyCodes, uint8_t* outFlags) { bool result = false; for (size_t i = 0; i < numCodes; i++) { @@ -1536,7 +1532,7 @@ protected: }; void KeyboardInputMapperTest::testDPadKeyRotation(KeyboardInputMapper* mapper, - int32_t originalScanCode, int32_t originalKeyCode, int32_t rotatedKeyCode) { + int32_t originalScanCode, int32_t, int32_t rotatedKeyCode) { NotifyKeyArgs args; process(mapper, ARBITRARY_TIME, DEVICE_ID, EV_KEY, originalScanCode, 1); diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk index 76545f3..eade2e2 100644 --- a/services/surfaceflinger/Android.mk +++ b/services/surfaceflinger/Android.mk @@ -115,15 +115,11 @@ include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_LDFLAGS := -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic -LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\" -Iart +LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\" LOCAL_CPPFLAGS:= -std=c++11 -# TODO: Trying to link libsigchain as a static library prevents -# static linker from exporting necessary symbols. So as a workaround -# we use sigchain.o LOCAL_SRC_FILES:= \ - main_surfaceflinger.cpp \ - sigchain_proxy.cpp + main_surfaceflinger.cpp LOCAL_SHARED_LIBRARIES := \ libsurfaceflinger \ @@ -133,6 +129,8 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ libdl +LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain + LOCAL_MODULE:= surfaceflinger ifdef TARGET_32_BIT_SURFACEFLINGER diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index cc47e16..0645a86 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1274,7 +1274,11 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) // this display is in both lists. see if something changed. const DisplayDeviceState& state(curr[j]); const wp<IBinder>& display(curr.keyAt(j)); - if (state.surface->asBinder() != draw[i].surface->asBinder()) { + const sp<IBinder> state_binder = + state.surface != NULL ? state.surface->asBinder() : NULL; + const sp<IBinder> draw_binder = + draw[i].surface != NULL ? draw[i].surface->asBinder() : NULL; + if (state_binder != draw_binder) { // changing the surface is like destroying and // recreating the DisplayDevice, so we just remove it // from the drawing state, so that it get re-added diff --git a/services/surfaceflinger/sigchain_proxy.cpp b/services/surfaceflinger/sigchain_proxy.cpp deleted file mode 100644 index bb7a678..0000000 --- a/services/surfaceflinger/sigchain_proxy.cpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "sigchainlib/sigchain.cc" diff --git a/services/surfaceflinger/tests/Android.mk b/services/surfaceflinger/tests/Android.mk index e210860..979062e 100644 --- a/services/surfaceflinger/tests/Android.mk +++ b/services/surfaceflinger/tests/Android.mk @@ -1,6 +1,7 @@ # Build the unit tests, LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_MODULE := SurfaceFlinger_test @@ -15,16 +16,9 @@ LOCAL_SHARED_LIBRARIES := \ libbinder \ libcutils \ libgui \ - libstlport \ libui \ libutils \ -LOCAL_C_INCLUDES := \ - bionic \ - bionic/libstdc++/include \ - external/gtest/include \ - external/stlport/stlport \ - # Build the binary to $(TARGET_OUT_DATA_NATIVE_TESTS)/$(LOCAL_MODULE) # to integrate with auto-test framework. include $(BUILD_NATIVE_TEST) |