[FIX] gl probe pack event on dlopen if feature off 04/14904/1
authorVitaliy Cherepanov <v.cherepanov@samsung.com>
Mon, 13 Jan 2014 13:06:38 +0000 (17:06 +0400)
committerVitaliy Cherepanov <v.cherepanov@samsung.com>
Mon, 13 Jan 2014 13:06:38 +0000 (17:06 +0400)
Change-Id: I5b458f41fe380cd701aa5b64aedc03b0856d7b59
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
probe_graphics/da_gles20.h

index ffb8812a343958a751819f63795cc38093b145c4..774deabee65c53aec1678bc40b83f170dd339efb 100644 (file)
        static methodType FUNCNAME ## p = 0;                            \
        void* tmpPtr = 0;                                               \
        int32_t vAPI_ID = API_ID_ ## FUNCNAME;                          \
-       uint64_t start_nsec = get_current_nsec();                       \
+       uint64_t start_nsec = 0;                                        \
+       PRE_PROBEBLOCK();                                               \
+       if(blockresult != 0)                                            \
+               start_nsec = get_current_nsec();                        \
        if(!FUNCNAME##p) {                                              \
                probeBlockStart();                                      \
                if (lib_handle[LIBGLES20] == ((void *) 0)) {            \
                        }                                               \
                        probeInfo_t tempProbeInfo;                      \
                        setProbePoint(&tempProbeInfo);                  \
-                       /* get max value */                             \
-                       char maxValString[64];                          \
-                       GLint maxVal[2];                                \
-                       glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxVal[0]);               \
-                       glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &maxVal[1]); \
-                       sprintf(maxValString, "%d,%d", maxVal[0], maxVal[1]);           \
-                       PREPARE_LOCAL_BUF();                                            \
-                       PACK_COMMON_BEGIN(MSG_PROBE_GL, vAPI_ID, "", 0);                \
-                       PACK_COMMON_END('p', 1, 0, 0);                                  \
-                       PACK_GL_ADD(APITYPE_INIT, 0, maxValString);                     \
-                       FLUSH_LOCAL_BUF();                                              \
+                       if(blockresult != 0) {                          \
+                               /* get max value */                             \
+                               char maxValString[64];                          \
+                               GLint maxVal[2];                                \
+                               glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxVal[0]);               \
+                               glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &maxVal[1]); \
+                               sprintf(maxValString, "%d,%d", maxVal[0], maxVal[1]);           \
+                               PREPARE_LOCAL_BUF();                    \
+                               PACK_COMMON_BEGIN(MSG_PROBE_GL, vAPI_ID, "", 0);\
+                               PACK_COMMON_END('p', 1, 0, 0);          \
+                               PACK_GL_ADD(APITYPE_INIT, 0, maxValString);     \
+                               FLUSH_LOCAL_BUF();                      \
+                       }                                               \
                }                                                       \
                                                                        \
                tmpPtr = dlsym(lib_handle[LIBGLES20], #FUNCNAME);       \
@@ -94,8 +99,7 @@
                                                                        \
                memcpy(&FUNCNAME##p, &tmpPtr, sizeof(tmpPtr));          \
                probeBlockEnd();                                        \
-       }                                                               \
-       PRE_PROBEBLOCK()
+       }
 
 #define INIT_LIB_ID_STR(LIB_ID, LIB_STR, KEYS)                                                 \
                if (lib_handle[LIB_ID] == ((void *) 0)) {               \
        static methodType FUNCNAME ## p = 0;                            \
        void* tmpPtr = 0;                                               \
        int32_t vAPI_ID = API_ID_ ## FUNCNAME;                          \
-       uint64_t start_nsec = get_current_nsec();                       \
+       uint64_t start_nsec = 0;                                        \
+       PRE_PROBEBLOCK();                                               \
+       if(blockresult != 0)                                            \
+               start_nsec = get_current_nsec();                        \
        if(!FUNCNAME##p) {                                              \
                probeBlockStart();                                      \
                INIT_LIB(LIBEGL, RTLD_LAZY | RTLD_GLOBAL);              \
                }                                                       \
                memcpy(&FUNCNAME##p, &tmpPtr, sizeof(tmpPtr));          \
                probeBlockEnd();                                        \
-       }                                                               \
-       PRE_PROBEBLOCK()
+       }
 
 #define BEFORE_OSP_UIFW(FUNCNAME)                                      \
        DECLARE_VARIABLE_STANDARD_NORET;                        \
        static methodType FUNCNAME ## p = 0;                    \
        void* tmpPtr = 0;                                       \
        int32_t vAPI_ID = API_ID_ ## FUNCNAME;                  \
-       uint64_t start_nsec = get_current_nsec();                               \
+       uint64_t start_nsec = 0;                                        \
+       PRE_PROBEBLOCK();                                               \
+       if(blockresult != 0)                                            \
+               start_nsec = get_current_nsec();                        \
        if(!FUNCNAME##p) {                                              \
                probeBlockStart();                                      \
                INIT_LIB(LIBOSP_UIFW, RTLD_LAZY);                       \
                }                                                       \
                memcpy(&FUNCNAME##p, &tmpPtr, sizeof(tmpPtr));          \
                probeBlockEnd();                                        \
-       }                                                               \
-       PRE_PROBEBLOCK()
+       }
 
 #define AFTER(RET_TYPE, RET_VAL, APITYPE, CONTEXT_VAL, INPUTFORMAT, ...)       \
        POST_PACK_PROBEBLOCK_BEGIN();                                           \