Remove global variables from ProcessState.

These weren't really being used and they make it
very hard to reason about who looks at command line
arguments.

Processes started via app_process (this includes all
zygote forks and the system_server) can get information
about command line arguments from the AndroidRuntime
class, which is available via a call to
AndroidRuntime::getRuntime.

bug: 13647418

Change-Id: I6f92680c3619a68c6d4b0995db4cdc9adc788e36
This commit is contained in:
Narayan Kamath 2014-03-28 13:41:28 +00:00
parent b1a8c01637
commit 162ea0e9e8
2 changed files with 0 additions and 46 deletions

View File

@ -27,11 +27,6 @@
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
namespace android { namespace android {
// Global variables
extern int mArgC;
extern const char* const* mArgV;
extern int mArgLen;
class IPCThreadState; class IPCThreadState;
class ProcessState : public virtual RefBase class ProcessState : public virtual RefBase
@ -62,12 +57,6 @@ public:
wp<IBinder> getWeakProxyForHandle(int32_t handle); wp<IBinder> getWeakProxyForHandle(int32_t handle);
void expungeHandle(int32_t handle, IBinder* binder); void expungeHandle(int32_t handle, IBinder* binder);
void setArgs(int argc, const char* const argv[]);
int getArgC() const;
const char* const* getArgV() const;
void setArgV0(const char* txt);
void spawnPooledThread(bool isMain); void spawnPooledThread(bool isMain);
status_t setThreadPoolMaxThreadCount(size_t maxThreads); status_t setThreadPoolMaxThreadCount(size_t maxThreads);

View File

@ -48,11 +48,6 @@
namespace android { namespace android {
// Global variables
int mArgC;
const char* const* mArgV;
int mArgLen;
class PoolThread : public Thread class PoolThread : public Thread
{ {
public: public:
@ -280,36 +275,6 @@ void ProcessState::expungeHandle(int32_t handle, IBinder* binder)
if (e && e->binder == binder) e->binder = NULL; if (e && e->binder == binder) e->binder = NULL;
} }
void ProcessState::setArgs(int argc, const char* const argv[])
{
mArgC = argc;
mArgV = (const char **)argv;
mArgLen = 0;
for (int i=0; i<argc; i++) {
mArgLen += strlen(argv[i]) + 1;
}
mArgLen--;
}
int ProcessState::getArgC() const
{
return mArgC;
}
const char* const* ProcessState::getArgV() const
{
return mArgV;
}
void ProcessState::setArgV0(const char* txt)
{
if (mArgV != NULL) {
strncpy((char*)mArgV[0], txt, mArgLen);
set_process_name(txt);
}
}
String8 ProcessState::makeBinderThreadName() { String8 ProcessState::makeBinderThreadName() {
int32_t s = android_atomic_add(1, &mThreadPoolSeq); int32_t s = android_atomic_add(1, &mThreadPoolSeq);
String8 name; String8 name;