Remove libutils and fix rsDebug for RS support library.
Bug: 9664050
Our bitcode runtime library translates vector rsDebug() calls into passing
their parameters via pointers. The previous version of libRSSupport.so was
being created with non-pointer versions of these routines accidentally.
This change also fixes a missing permission issue for ImageProcessing2, so
that the compatibility library can be verified.
This change also removes the use of libutils by switching the implementation of
String8/Vector in the compatibility library to internal types backed by
libstlport_static.
Change-Id: I20da75e8c19a82a42dc2bceaba1937d21372db84
diff --git a/rsObjectBase.cpp b/rsObjectBase.cpp
index f864bac..c8d7349 100644
--- a/rsObjectBase.cpp
+++ b/rsObjectBase.cpp
@@ -29,6 +29,7 @@
mNext = NULL;
mPrev = NULL;
mDH = NULL;
+ mName = NULL;
#if RS_OBJECT_DEBUG
mDH = new DebugHelper();
@@ -47,6 +48,8 @@
mDH = NULL;
#endif
+ free(const_cast<char *>(mName));
+
if (mPrev || mNext) {
// While the normal practice is to call remove before we call
// delete. Its possible for objects without a re-use list
@@ -62,9 +65,9 @@
}
void ObjectBase::dumpLOGV(const char *op) const {
- if (mName.size()) {
+ if (mName) {
ALOGV("%s RSobj %p, name %s, refs %i,%i links %p,%p,%p",
- op, this, mName.string(), mUserRefCount, mSysRefCount, mNext, mPrev, mRSC);
+ op, this, mName, mUserRefCount, mSysRefCount, mNext, mPrev, mRSC);
} else {
ALOGV("%s RSobj %p, no-name, refs %i,%i links %p,%p,%p",
op, this, mUserRefCount, mSysRefCount, mNext, mPrev, mRSC);
@@ -152,11 +155,14 @@
}
void ObjectBase::setName(const char *name) {
- mName.setTo(name);
+ mName = strdup(name);
}
void ObjectBase::setName(const char *name, uint32_t len) {
- mName.setTo(name, len);
+ char *c = (char*)calloc(len + 1, sizeof(char));
+ rsAssert(c);
+ memcpy(c, name, len);
+ mName = c;
}
void ObjectBase::asyncLock() {