Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 162ea0e9 authored by Narayan Kamath's avatar Narayan Kamath
Browse files

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
parent b1a8c016
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -27,11 +27,6 @@
// ---------------------------------------------------------------------------
namespace android {

// Global variables
extern int                 mArgC;
extern const char* const*  mArgV;
extern int                 mArgLen;

class IPCThreadState;

class ProcessState : public virtual RefBase
@@ -62,12 +57,6 @@ public:
            wp<IBinder>         getWeakProxyForHandle(int32_t handle);
            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);
            
            status_t            setThreadPoolMaxThreadCount(size_t maxThreads);
+0 −35
Original line number Diff line number Diff line
@@ -48,11 +48,6 @@

namespace android {
 
// Global variables
int                 mArgC;
const char* const*  mArgV;
int                 mArgLen;

class PoolThread : public Thread
{
public:
@@ -280,36 +275,6 @@ void ProcessState::expungeHandle(int32_t handle, IBinder* binder)
    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() {
    int32_t s = android_atomic_add(1, &mThreadPoolSeq);
    String8 name;