Enable clang for libui/libgui/surfaceflinger

Enables clang and C++11 for libui/libgui/surfaceflinger, and
eliminates all compile-time warnings.

Change-Id: Ie237fdb5ae44f2bfcddaa884f9c65ec3f08ae50f
This commit is contained in:
Dan Stoza 2014-11-11 10:32:31 -08:00
parent ff8be8c267
commit f10c46ef85
18 changed files with 76 additions and 80 deletions

View File

@ -98,7 +98,7 @@ private:
String8 mStringType; String8 mStringType;
String8 mRequiredPermission; String8 mRequiredPermission;
int32_t mMaxDelay; int32_t mMaxDelay;
int32_t mFlags; uint32_t mFlags;
static void flattenString8(void*& buffer, size_t& size, const String8& string8); static void flattenString8(void*& buffer, size_t& size, const String8& string8);
static bool unflattenString8(void const*& buffer, size_t& size, String8& outputString8); static bool unflattenString8(void const*& buffer, size_t& size, String8& outputString8);
}; };

View File

@ -14,11 +14,13 @@
* limitations under the License. * limitations under the License.
*/ */
#ifndef INCLUDED_FROM_FRAMEBUFFER_NATIVE_WINDOW_CPP
#warning "FramebufferNativeWindow is deprecated"
#endif
#ifndef ANDROID_FRAMEBUFFER_NATIVE_WINDOW_H #ifndef ANDROID_FRAMEBUFFER_NATIVE_WINDOW_H
#define ANDROID_FRAMEBUFFER_NATIVE_WINDOW_H #define ANDROID_FRAMEBUFFER_NATIVE_WINDOW_H
#warning "FramebufferNativeWindow is deprecated"
#include <stdint.h> #include <stdint.h>
#include <sys/types.h> #include <sys/types.h>

View File

@ -72,11 +72,11 @@ public:
GraphicBuffer(); GraphicBuffer();
// creates w * h buffer // creates w * h buffer
GraphicBuffer(uint32_t w, uint32_t h, PixelFormat format, uint32_t usage); GraphicBuffer(int w, int h, PixelFormat format, int usage);
// create a buffer from an existing handle // create a buffer from an existing handle
GraphicBuffer(uint32_t w, uint32_t h, PixelFormat format, uint32_t usage, GraphicBuffer(int w, int h, PixelFormat format, int usage,
uint32_t stride, native_handle_t* handle, bool keepOwnership); int stride, native_handle_t* handle, bool keepOwnership);
// create a buffer from an existing ANativeWindowBuffer // create a buffer from an existing ANativeWindowBuffer
GraphicBuffer(ANativeWindowBuffer* buffer, bool keepOwnership); GraphicBuffer(ANativeWindowBuffer* buffer, bool keepOwnership);
@ -84,15 +84,15 @@ public:
// return status // return status
status_t initCheck() const; status_t initCheck() const;
uint32_t getWidth() const { return width; } int getWidth() const { return width; }
uint32_t getHeight() const { return height; } int getHeight() const { return height; }
uint32_t getStride() const { return stride; } int getStride() const { return stride; }
uint32_t getUsage() const { return usage; } int getUsage() const { return usage; }
PixelFormat getPixelFormat() const { return format; } PixelFormat getPixelFormat() const { return format; }
Rect getBounds() const { return Rect(width, height); } Rect getBounds() const { return Rect(width, height); }
uint64_t getId() const { return mId; } uint64_t getId() const { return mId; }
status_t reallocate(uint32_t w, uint32_t h, PixelFormat f, uint32_t usage); status_t reallocate(int w, int h, PixelFormat f, int usage);
status_t lock(uint32_t usage, void** vaddr); status_t lock(uint32_t usage, void** vaddr);
status_t lock(uint32_t usage, const Rect& rect, void** vaddr); status_t lock(uint32_t usage, const Rect& rect, void** vaddr);

View File

@ -1,7 +1,10 @@
LOCAL_PATH:= $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \ LOCAL_CLANG := true
LOCAL_CPPFLAGS := -std=c++11
LOCAL_SRC_FILES := \
IGraphicBufferConsumer.cpp \ IGraphicBufferConsumer.cpp \
IConsumerListener.cpp \ IConsumerListener.cpp \
BitTube.cpp \ BitTube.cpp \
@ -47,7 +50,7 @@ LOCAL_SHARED_LIBRARIES := \
liblog liblog
LOCAL_MODULE:= libgui LOCAL_MODULE := libgui
ifeq ($(TARGET_BOARD_PLATFORM), tegra) ifeq ($(TARGET_BOARD_PLATFORM), tegra)
LOCAL_CFLAGS += -DDONT_USE_FENCE_SYNC LOCAL_CFLAGS += -DDONT_USE_FENCE_SYNC

View File

@ -157,7 +157,7 @@ void SensorEventQueue::sendAck(const ASensorEvent* events, int count) {
ssize_t size = ::send(mSensorChannel->getFd(), &mNumAcksToSend, sizeof(mNumAcksToSend), ssize_t size = ::send(mSensorChannel->getFd(), &mNumAcksToSend, sizeof(mNumAcksToSend),
MSG_DONTWAIT | MSG_NOSIGNAL); MSG_DONTWAIT | MSG_NOSIGNAL);
if (size < 0) { if (size < 0) {
ALOGE("sendAck failure %d %d", size, mNumAcksToSend); ALOGE("sendAck failure %zd %d", size, mNumAcksToSend);
} else { } else {
mNumAcksToSend = 0; mNumAcksToSend = 0;
} }

View File

@ -752,14 +752,14 @@ status_t ScreenshotClient::update(const sp<IBinder>& display,
status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop, status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop,
bool useIdentityTransform) { bool useIdentityTransform) {
return ScreenshotClient::update(display, sourceCrop, 0, 0, 0, -1UL, return ScreenshotClient::update(display, sourceCrop, 0, 0, 0, -1U,
useIdentityTransform, ISurfaceComposer::eRotateNone); useIdentityTransform, ISurfaceComposer::eRotateNone);
} }
status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop, status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop,
uint32_t reqWidth, uint32_t reqHeight, bool useIdentityTransform) { uint32_t reqWidth, uint32_t reqHeight, bool useIdentityTransform) {
return ScreenshotClient::update(display, sourceCrop, reqWidth, reqHeight, return ScreenshotClient::update(display, sourceCrop, reqWidth, reqHeight,
0, -1UL, useIdentityTransform, ISurfaceComposer::eRotateNone); 0, -1U, useIdentityTransform, ISurfaceComposer::eRotateNone);
} }
void ScreenshotClient::release() { void ScreenshotClient::release() {

View File

@ -12,10 +12,13 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
LOCAL_PATH:= $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \ LOCAL_CLANG := true
LOCAL_CPPFLAGS := -std=c++11
LOCAL_SRC_FILES := \
Fence.cpp \ Fence.cpp \
FramebufferNativeWindow.cpp \ FramebufferNativeWindow.cpp \
FrameStats.cpp \ FrameStats.cpp \
@ -38,7 +41,7 @@ ifneq ($(BOARD_FRAMEBUFFER_FORCE_FORMAT),)
LOCAL_CFLAGS += -DFRAMEBUFFER_FORCE_FORMAT=$(BOARD_FRAMEBUFFER_FORCE_FORMAT) LOCAL_CFLAGS += -DFRAMEBUFFER_FORCE_FORMAT=$(BOARD_FRAMEBUFFER_FORCE_FORMAT)
endif endif
LOCAL_MODULE:= libui LOCAL_MODULE := libui
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)

View File

@ -29,7 +29,9 @@
#include <ui/ANativeObjectBase.h> #include <ui/ANativeObjectBase.h>
#include <ui/Fence.h> #include <ui/Fence.h>
#define INCLUDED_FROM_FRAMEBUFFER_NATIVE_WINDOW_CPP
#include <ui/FramebufferNativeWindow.h> #include <ui/FramebufferNativeWindow.h>
#undef INCLUDED_FROM_FRAMEBUFFER_NATIVE_WINDOW_CPP
#include <ui/Rect.h> #include <ui/Rect.h>
#include <EGL/egl.h> #include <EGL/egl.h>

View File

@ -45,31 +45,29 @@ GraphicBuffer::GraphicBuffer()
: BASE(), mOwner(ownData), mBufferMapper(GraphicBufferMapper::get()), : BASE(), mOwner(ownData), mBufferMapper(GraphicBufferMapper::get()),
mInitCheck(NO_ERROR), mId(getUniqueId()) mInitCheck(NO_ERROR), mId(getUniqueId())
{ {
width = width =
height = height =
stride = stride =
format = format =
usage = 0; usage = 0;
handle = NULL; handle = NULL;
} }
GraphicBuffer::GraphicBuffer(uint32_t w, uint32_t h, GraphicBuffer::GraphicBuffer(int w, int h, PixelFormat reqFormat, int reqUsage)
PixelFormat reqFormat, uint32_t reqUsage)
: BASE(), mOwner(ownData), mBufferMapper(GraphicBufferMapper::get()), : BASE(), mOwner(ownData), mBufferMapper(GraphicBufferMapper::get()),
mInitCheck(NO_ERROR), mId(getUniqueId()) mInitCheck(NO_ERROR), mId(getUniqueId())
{ {
width = width =
height = height =
stride = stride =
format = format =
usage = 0; usage = 0;
handle = NULL; handle = NULL;
mInitCheck = initSize(w, h, reqFormat, reqUsage); mInitCheck = initSize(w, h, reqFormat, reqUsage);
} }
GraphicBuffer::GraphicBuffer(uint32_t w, uint32_t h, GraphicBuffer::GraphicBuffer(int w, int h, PixelFormat inFormat, int inUsage,
PixelFormat inFormat, uint32_t inUsage, int inStride, native_handle_t* inHandle, bool keepOwnership)
uint32_t inStride, native_handle_t* inHandle, bool keepOwnership)
: BASE(), mOwner(keepOwnership ? ownHandle : ownNone), : BASE(), mOwner(keepOwnership ? ownHandle : ownNone),
mBufferMapper(GraphicBufferMapper::get()), mBufferMapper(GraphicBufferMapper::get()),
mInitCheck(NO_ERROR), mId(getUniqueId()) mInitCheck(NO_ERROR), mId(getUniqueId())
@ -131,8 +129,7 @@ ANativeWindowBuffer* GraphicBuffer::getNativeBuffer() const
const_cast<GraphicBuffer*>(this)); const_cast<GraphicBuffer*>(this));
} }
status_t GraphicBuffer::reallocate(uint32_t w, uint32_t h, PixelFormat f, status_t GraphicBuffer::reallocate(int w, int h, PixelFormat f, int reqUsage)
uint32_t reqUsage)
{ {
if (mOwner != ownData) if (mOwner != ownData)
return INVALID_OPERATION; return INVALID_OPERATION;
@ -171,10 +168,10 @@ status_t GraphicBuffer::lock(uint32_t usage, void** vaddr)
status_t GraphicBuffer::lock(uint32_t usage, const Rect& rect, void** vaddr) status_t GraphicBuffer::lock(uint32_t usage, const Rect& rect, void** vaddr)
{ {
if (rect.left < 0 || rect.right > this->width || if (rect.left < 0 || rect.right > this->width ||
rect.top < 0 || rect.bottom > this->height) { rect.top < 0 || rect.bottom > this->height) {
ALOGE("locking pixels (%d,%d,%d,%d) outside of buffer (w=%d, h=%d)", ALOGE("locking pixels (%d,%d,%d,%d) outside of buffer (w=%d, h=%d)",
rect.left, rect.top, rect.right, rect.bottom, rect.left, rect.top, rect.right, rect.bottom,
this->width, this->height); this->width, this->height);
return BAD_VALUE; return BAD_VALUE;
} }
@ -314,7 +311,7 @@ status_t GraphicBuffer::unflatten(
if (numFds >= maxNumber || numInts >= (maxNumber - 10)) { if (numFds >= maxNumber || numInts >= (maxNumber - 10)) {
width = height = stride = format = usage = 0; width = height = stride = format = usage = 0;
handle = NULL; handle = NULL;
ALOGE("unflatten: numFds or numInts is too large: %d, %d", ALOGE("unflatten: numFds or numInts is too large: %zd, %zd",
numFds, numInts); numFds, numInts);
return BAD_VALUE; return BAD_VALUE;
} }

View File

@ -1,10 +1,10 @@
LOCAL_PATH:= $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_CLANG := true LOCAL_CLANG := true
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_SRC_FILES:= \ LOCAL_SRC_FILES := \
Client.cpp \ Client.cpp \
DisplayDevice.cpp \ DisplayDevice.cpp \
DispSync.cpp \ DispSync.cpp \
@ -37,7 +37,7 @@ LOCAL_SRC_FILES:= \
RenderEngine/GLES20RenderEngine.cpp RenderEngine/GLES20RenderEngine.cpp
LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\" LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
ifeq ($(TARGET_BOARD_PLATFORM),omap4) ifeq ($(TARGET_BOARD_PLATFORM),omap4)
@ -90,7 +90,7 @@ else
endif endif
LOCAL_CFLAGS += -fvisibility=hidden -Werror=format LOCAL_CFLAGS += -fvisibility=hidden -Werror=format
LOCAL_CFLAGS += -std=c++11 LOCAL_CPPFLAGS := -std=c++11
LOCAL_SHARED_LIBRARIES := \ LOCAL_SHARED_LIBRARIES := \
libcutils \ libcutils \
@ -106,7 +106,7 @@ LOCAL_SHARED_LIBRARIES := \
libgui \ libgui \
libpowermanager libpowermanager
LOCAL_MODULE:= libsurfaceflinger LOCAL_MODULE := libsurfaceflinger
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)
@ -114,11 +114,13 @@ include $(BUILD_SHARED_LIBRARY)
# build surfaceflinger's executable # build surfaceflinger's executable
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_LDFLAGS := -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic LOCAL_CLANG := true
LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_CPPFLAGS:= -std=c++11
LOCAL_SRC_FILES:= \ LOCAL_LDFLAGS := -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic
LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_CPPFLAGS := -std=c++11
LOCAL_SRC_FILES := \
main_surfaceflinger.cpp main_surfaceflinger.cpp
LOCAL_SHARED_LIBRARIES := \ LOCAL_SHARED_LIBRARIES := \
@ -131,7 +133,7 @@ LOCAL_SHARED_LIBRARIES := \
LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain
LOCAL_MODULE:= surfaceflinger LOCAL_MODULE := surfaceflinger
ifdef TARGET_32_BIT_SURFACEFLINGER ifdef TARGET_32_BIT_SURFACEFLINGER
LOCAL_32_BIT_ONLY := true LOCAL_32_BIT_ONLY := true
@ -143,9 +145,13 @@ include $(BUILD_EXECUTABLE)
# uses jni which may not be available in PDK # uses jni which may not be available in PDK
ifneq ($(wildcard libnativehelper/include),) ifneq ($(wildcard libnativehelper/include),)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_SRC_FILES:= \ LOCAL_CLANG := true
LOCAL_CFLAGS := -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_CPPFLAGS := -std=c++11
LOCAL_SRC_FILES := \
DdmConnection.cpp DdmConnection.cpp
LOCAL_SHARED_LIBRARIES := \ LOCAL_SHARED_LIBRARIES := \
@ -153,7 +159,7 @@ LOCAL_SHARED_LIBRARIES := \
liblog \ liblog \
libdl libdl
LOCAL_MODULE:= libsurfaceflinger_ddmconnection LOCAL_MODULE := libsurfaceflinger_ddmconnection
include $(BUILD_SHARED_LIBRARY) include $(BUILD_SHARED_LIBRARY)
endif # libnativehelper endif # libnativehelper

View File

@ -59,12 +59,14 @@ void DdmConnection::start(const char* name) {
} }
jint (*JNI_CreateJavaVM)(JavaVM** p_vm, JNIEnv** p_env, void* vm_args); jint (*JNI_CreateJavaVM)(JavaVM** p_vm, JNIEnv** p_env, void* vm_args);
JNI_CreateJavaVM = (typeof JNI_CreateJavaVM)dlsym(libart_dso, "JNI_CreateJavaVM"); JNI_CreateJavaVM = reinterpret_cast<decltype(JNI_CreateJavaVM)>(
dlsym(libart_dso, "JNI_CreateJavaVM"));
ALOGE_IF(!JNI_CreateJavaVM, "DdmConnection: %s", dlerror()); ALOGE_IF(!JNI_CreateJavaVM, "DdmConnection: %s", dlerror());
jint (*registerNatives)(JNIEnv* env, jclass clazz); jint (*registerNatives)(JNIEnv* env, jclass clazz);
registerNatives = (typeof registerNatives)dlsym(libandroid_runtime_dso, registerNatives = reinterpret_cast<decltype(registerNatives)>(
"Java_com_android_internal_util_WithFramework_registerNatives"); dlsym(libandroid_runtime_dso,
"Java_com_android_internal_util_WithFramework_registerNatives"));
ALOGE_IF(!registerNatives, "DdmConnection: %s", dlerror()); ALOGE_IF(!registerNatives, "DdmConnection: %s", dlerror());
if (!JNI_CreateJavaVM || !registerNatives) { if (!JNI_CreateJavaVM || !registerNatives) {

View File

@ -511,6 +511,6 @@ void DisplayDevice::dump(String8& result) const {
tr[0][2], tr[1][2], tr[2][2]); tr[0][2], tr[1][2], tr[2][2]);
String8 surfaceDump; String8 surfaceDump;
mDisplaySurface->dump(surfaceDump); mDisplaySurface->dumpAsString(surfaceDump);
result.append(surfaceDump); result.append(surfaceDump);
} }

View File

@ -70,7 +70,7 @@ public:
// frame's buffer. // frame's buffer.
virtual void onFrameCommitted() = 0; virtual void onFrameCommitted() = 0;
virtual void dump(String8& result) const = 0; virtual void dumpAsString(String8& result) const = 0;
virtual void resizeBuffers(const uint32_t w, const uint32_t h) = 0; virtual void resizeBuffers(const uint32_t w, const uint32_t h) = 0;

View File

@ -160,23 +160,7 @@ status_t FramebufferSurface::compositionComplete()
return mHwc.fbCompositionComplete(); return mHwc.fbCompositionComplete();
} }
// Since DisplaySurface and ConsumerBase both have a method with this void FramebufferSurface::dumpAsString(String8& result) const {
// signature, results will vary based on the static pointer type the caller is
// using:
// void dump(FrameBufferSurface* fbs, String8& s) {
// // calls FramebufferSurface::dump()
// fbs->dump(s);
//
// // calls ConsumerBase::dump() since it is non-virtual
// static_cast<ConsumerBase*>(fbs)->dump(s);
//
// // calls FramebufferSurface::dump() since it is virtual
// static_cast<DisplaySurface*>(fbs)->dump(s);
// }
// To make sure that all of these end up doing the same thing, we just redirect
// to ConsumerBase::dump() here. It will take the internal lock, and then call
// virtual dumpLocked(), which is where the real work happens.
void FramebufferSurface::dump(String8& result) const {
ConsumerBase::dump(result); ConsumerBase::dump(result);
} }

View File

@ -44,10 +44,7 @@ public:
virtual status_t compositionComplete(); virtual status_t compositionComplete();
virtual status_t advanceFrame(); virtual status_t advanceFrame();
virtual void onFrameCommitted(); virtual void onFrameCommitted();
virtual void dumpAsString(String8& result) const;
// Implementation of DisplaySurface::dump(). Note that ConsumerBase also
// has a non-virtual dump() with the same signature.
virtual void dump(String8& result) const;
// Cannot resize a buffers in a FramebufferSurface. Only works with virtual // Cannot resize a buffers in a FramebufferSurface. Only works with virtual
// displays. // displays.

View File

@ -254,7 +254,7 @@ void VirtualDisplaySurface::onFrameCommitted() {
resetPerFrameState(); resetPerFrameState();
} }
void VirtualDisplaySurface::dump(String8& /* result */) const { void VirtualDisplaySurface::dumpAsString(String8& /* result */) const {
} }
void VirtualDisplaySurface::resizeBuffers(const uint32_t w, const uint32_t h) { void VirtualDisplaySurface::resizeBuffers(const uint32_t w, const uint32_t h) {

View File

@ -86,7 +86,7 @@ public:
virtual status_t compositionComplete(); virtual status_t compositionComplete();
virtual status_t advanceFrame(); virtual status_t advanceFrame();
virtual void onFrameCommitted(); virtual void onFrameCommitted();
virtual void dump(String8& result) const; virtual void dumpAsString(String8& result) const;
virtual void resizeBuffers(const uint32_t w, const uint32_t h); virtual void resizeBuffers(const uint32_t w, const uint32_t h);
private: private:

View File

@ -607,7 +607,7 @@ status_t SurfaceFlinger::getDisplayConfigs(const sp<IBinder>& display,
return NO_ERROR; return NO_ERROR;
} }
status_t SurfaceFlinger::getDisplayStats(const sp<IBinder>& display, status_t SurfaceFlinger::getDisplayStats(const sp<IBinder>& /* display */,
DisplayStatInfo* stats) { DisplayStatInfo* stats) {
if (stats == NULL) { if (stats == NULL) {
return BAD_VALUE; return BAD_VALUE;