gfx/skia/trunk/include/utils/SkDebugUtils.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     2 /*
     3  * Copyright 2013 Google, Inc.
     4  *
     5  * Use of this source code is governed by a BSD-style license that can be
     6  * found in the LICENSE file.
     7  */
    10 #ifndef SkDebugUtils_DEFINED
    11 #define SkDebugUtils_DEFINED
    13 #include "SkTypes.h"
    15 // These functions dump 0, 1, and 2d arrays of data in a format that's
    16 // compatible with Mathematica for quick visualization
    19 template<class T>
    20 inline void SkDebugDumpMathematica( const T val ) {
    21     SkDEBUGFAIL("Need to specialize SkDebugDumpMathematica for your type, sorry.");
    22 }
    24 template<class T>
    25 inline void SkDebugDumpMathematica(const char *name, const T *array, int size) {
    26     SkDebugf(name);
    27     SkDebugf(" = {");
    28     for (int i=0 ; i < size ; i++) {
    29         SkDebugDumpMathematica<T>(array[i]);
    30         if (i != size-1) SkDebugf(", ");
    31     }
    32     SkDebugf("};\n");
    33 }
    35 template<class T>
    36 inline void SkDebugDumpMathematica(const char *name, const T *array, int width, int height) {
    37     SkDebugf(name);
    38     SkDebugf(" = {\n");
    39     for (int i=0 ; i < height ; i++) {
    40         SkDebugf("  {");
    41         for (int j = 0 ; j < width ; j++) {
    42             SkDebugDumpMathematica<T>(array[i*width + j]);
    43             if (j != width-1) {
    44                 SkDebugf(", ");
    45             }
    46         }
    47         SkDebugf("}");
    48         if (i != height-1) {
    49             SkDebugf(", \n");
    50         }
    51     }
    52     SkDebugf("\n};\n");
    53 }
    55 template<class T>
    56 inline void SkDebugDumpMathematica( const char *name, const T val ) {
    57     SkDebugf(name);
    58     SkDebugf(" = ");
    59     SkDebugDumpMathematica<T>(val);
    60     SkDebugf(";\n");
    61 }
    63 template<>
    64 inline void SkDebugDumpMathematica<uint8_t>( const uint8_t val ) {
    65     SkDebugf("%u", val);
    66 }
    68 template<>
    69 inline void SkDebugDumpMathematica<unsigned int>( const unsigned int val ) {
    70     SkDebugf("%u", val);
    71 }
    73 template<>
    74 inline void SkDebugDumpMathematica<int>( const int val ) {
    75     SkDebugf("%d", val);
    76 }
    78 template<>
    79 inline void SkDebugDumpMathematica<size_t>( const size_t val ) {
    80     SkDebugf("%u", val);
    81 }
    83 template<>
    84 void SkDebugDumpMathematica<const char *>( const char * val ) {
    85     SkDebugf("%s", val);
    86 }
    88 template<>
    89 inline void SkDebugDumpMathematica<float>( float val ) {
    90     SkDebugf("%f", val);
    91 }
    94 #endif

mercurial