LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/core - SkATrace.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 18 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 7 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2016 Google Inc.
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : 
       8             : #include "SkATrace.h"
       9             : 
      10             : #include "SkTraceEvent.h"
      11             : 
      12             : #ifdef SK_BUILD_FOR_ANDROID
      13             : #include <dlfcn.h>
      14             : #endif
      15             : 
      16           0 : SkATrace::SkATrace() : fBeginSection(nullptr), fEndSection(nullptr), fIsEnabled(nullptr) {
      17             : #ifdef SK_BUILD_FOR_ANDROID
      18             :     if (void* lib = dlopen("libandroid.so", RTLD_NOW | RTLD_LOCAL)) {
      19             :         fBeginSection = (decltype(fBeginSection))dlsym(lib, "ATrace_beginSection");
      20             :         fEndSection = (decltype(fEndSection))dlsym(lib, "ATrace_endSection");
      21             :         fIsEnabled = (decltype(fIsEnabled))dlsym(lib, "ATrace_isEnabled");
      22             :     }
      23             : #endif
      24           0 :     if (!fIsEnabled) {
      25           0 :         fIsEnabled = []{ return false; };
      26             :     }
      27           0 : }
      28             : 
      29           0 : SkEventTracer::Handle SkATrace::addTraceEvent(char phase,
      30             :                                               const uint8_t* categoryEnabledFlag,
      31             :                                               const char* name,
      32             :                                               uint64_t id,
      33             :                                               int numArgs,
      34             :                                               const char** argNames,
      35             :                                               const uint8_t* argTypes,
      36             :                                               const uint64_t* argValues,
      37             :                                               uint8_t flags) {
      38           0 :     if (fIsEnabled()) {
      39           0 :         if (TRACE_EVENT_PHASE_COMPLETE == phase ||
      40           0 :             TRACE_EVENT_PHASE_BEGIN == phase ||
      41             :             TRACE_EVENT_PHASE_INSTANT == phase) {
      42           0 :             fBeginSection(name);
      43             :         }
      44             : 
      45           0 :         if (TRACE_EVENT_PHASE_END == phase ||
      46             :             TRACE_EVENT_PHASE_INSTANT == phase) {
      47           0 :             fEndSection();
      48             :         }
      49             :     }
      50           0 :     return 0;
      51             : }
      52             : 
      53           0 : void SkATrace::updateTraceEventDuration(const uint8_t* categoryEnabledFlag,
      54             :                                         const char* name,
      55             :                                         SkEventTracer::Handle handle) {
      56             :     // This is only ever called from a scoped trace event so we will just end the ATrace section.
      57           0 :     if (fIsEnabled()) {
      58           0 :         fEndSection();
      59             :     }
      60           0 : }
      61             : 
      62           0 : const uint8_t* SkATrace::getCategoryGroupEnabled(const char* name) {
      63             :     // Chrome tracing is setup to not repeatly call this function once it has been initialized. So
      64             :     // we can't use this to do a check for ATrace isEnabled(). Thus we will always return yes here
      65             :     // and then check to see if ATrace is enabled when beginning and ending a section.
      66             :     static uint8_t yes = SkEventTracer::kEnabledForRecording_CategoryGroupEnabledFlags;
      67           0 :     return &yes;
      68             : }
      69             : 

Generated by: LCOV version 1.13