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

Commit 7c12540f authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change Ibd2197fb into eclair

* changes:
  Add script to script call support.  Add exception to catch out of bound index data when added to TriangleMeshBuilder.
parents 9af53ea6 bd2197fb
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -290,6 +290,11 @@ public class SimpleMesh extends BaseObj {
        }
        }


        public void addTriangle(int idx1, int idx2, int idx3) {
        public void addTriangle(int idx1, int idx2, int idx3) {
            if((idx1 >= mVtxCount) || (idx1 < 0) ||
               (idx2 >= mVtxCount) || (idx2 < 0) ||
               (idx3 >= mVtxCount) || (idx3 < 0)) {
               throw new IllegalStateException("Index provided greater than vertex count.");
            }
            if ((mIndexCount + 3) >= mIndexData.length) {
            if ((mIndexCount + 3) >= mIndexData.length) {
                short t[] = new short[mIndexData.length * 2];
                short t[] = new short[mIndexData.length * 2];
                System.arraycopy(mIndexData, 0, t, 0, mIndexData.length);
                System.arraycopy(mIndexData, 0, t, 0, mIndexData.length);
+1 −1
Original line number Original line Diff line number Diff line
@@ -99,6 +99,7 @@ public:


    uint32_t getMessageToClient(void *data, size_t *receiveLen, size_t bufferLen, bool wait);
    uint32_t getMessageToClient(void *data, size_t *receiveLen, size_t bufferLen, bool wait);
    bool sendMessageToClient(void *data, uint32_t cmdID, size_t len, bool waitForSpace);
    bool sendMessageToClient(void *data, uint32_t cmdID, size_t len, bool waitForSpace);
    bool runScript(Script *s, uint32_t launchID);


    void initToClient();
    void initToClient();
    void deinitToClient();
    void deinitToClient();
@@ -212,7 +213,6 @@ private:


    void initEGL();
    void initEGL();


    bool runScript(Script *s, uint32_t launchID);
    bool runRootScript();
    bool runRootScript();


    static void * threadProc(void *);
    static void * threadProc(void *);
+10 −0
Original line number Original line Diff line number Diff line
@@ -1008,6 +1008,13 @@ static uint32_t SC_toClient(void *data, int cmdID, int len, int waitForSpace)
    return rsc->sendMessageToClient(data, cmdID, len, waitForSpace != 0);
    return rsc->sendMessageToClient(data, cmdID, len, waitForSpace != 0);
}
}


static void SC_scriptCall(int scriptID)
{
    GET_TLS();
    rsc->runScript((Script *)scriptID, 0);
}


//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// Class implementation
// Class implementation
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
@@ -1289,6 +1296,9 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = {
    { "debugHexI32", (void *)&SC_debugHexI32,
    { "debugHexI32", (void *)&SC_debugHexI32,
        "void", "(void *, int)" },
        "void", "(void *, int)" },


    { "scriptCall", (void *)&SC_scriptCall,
        "void", "(int)" },



    { NULL, NULL, NULL, NULL }
    { NULL, NULL, NULL, NULL }
};
};