1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2012 The PDFium Authors
2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file.
4*3ac0a46fSAndroid Build Coastguard Worker
5*3ac0a46fSAndroid Build Coastguard Worker // This file provides integration with Google-style "base/logging.h" assertions
6*3ac0a46fSAndroid Build Coastguard Worker // for Skia SkASSERT. If you don't want this, you can link with another file
7*3ac0a46fSAndroid Build Coastguard Worker // that provides integration with the logging of your choice.
8*3ac0a46fSAndroid Build Coastguard Worker
9*3ac0a46fSAndroid Build Coastguard Worker #include <stdarg.h>
10*3ac0a46fSAndroid Build Coastguard Worker #include <stdio.h>
11*3ac0a46fSAndroid Build Coastguard Worker
12*3ac0a46fSAndroid Build Coastguard Worker #include "third_party/skia/include/core/SkTypes.h"
13*3ac0a46fSAndroid Build Coastguard Worker
14*3ac0a46fSAndroid Build Coastguard Worker #if defined(SK_BUILD_FOR_WIN) && !defined(__clang__)
15*3ac0a46fSAndroid Build Coastguard Worker #include <stdlib.h>
16*3ac0a46fSAndroid Build Coastguard Worker #endif
17*3ac0a46fSAndroid Build Coastguard Worker
SkDebugf_FileLine(const char * file,int line,const char * format,...)18*3ac0a46fSAndroid Build Coastguard Worker void SkDebugf_FileLine(const char* file, int line, const char* format, ...) {
19*3ac0a46fSAndroid Build Coastguard Worker va_list ap;
20*3ac0a46fSAndroid Build Coastguard Worker va_start(ap, format);
21*3ac0a46fSAndroid Build Coastguard Worker
22*3ac0a46fSAndroid Build Coastguard Worker fprintf(stderr, "%s:%d ", file, line);
23*3ac0a46fSAndroid Build Coastguard Worker vfprintf(stderr, format, ap);
24*3ac0a46fSAndroid Build Coastguard Worker va_end(ap);
25*3ac0a46fSAndroid Build Coastguard Worker }
26*3ac0a46fSAndroid Build Coastguard Worker
27*3ac0a46fSAndroid Build Coastguard Worker #if defined(SK_BUILD_FOR_WIN) && !defined(__clang__)
28*3ac0a46fSAndroid Build Coastguard Worker
SkDebugf_FileLineOnly(const char * file,int line)29*3ac0a46fSAndroid Build Coastguard Worker void SkDebugf_FileLineOnly(const char* file, int line) {
30*3ac0a46fSAndroid Build Coastguard Worker fprintf(stderr, "%s:%d\n", file, line);
31*3ac0a46fSAndroid Build Coastguard Worker }
32*3ac0a46fSAndroid Build Coastguard Worker
SkAbort_FileLine(const char * file,int line,const char * format,...)33*3ac0a46fSAndroid Build Coastguard Worker void SkAbort_FileLine(const char* file, int line, const char* format, ...) {
34*3ac0a46fSAndroid Build Coastguard Worker va_list ap;
35*3ac0a46fSAndroid Build Coastguard Worker va_start(ap, format);
36*3ac0a46fSAndroid Build Coastguard Worker
37*3ac0a46fSAndroid Build Coastguard Worker fprintf(stderr, "%s:%d ", file, line);
38*3ac0a46fSAndroid Build Coastguard Worker vfprintf(stderr, format, ap);
39*3ac0a46fSAndroid Build Coastguard Worker va_end(ap);
40*3ac0a46fSAndroid Build Coastguard Worker
41*3ac0a46fSAndroid Build Coastguard Worker sk_abort_no_print();
42*3ac0a46fSAndroid Build Coastguard Worker // Extra safety abort().
43*3ac0a46fSAndroid Build Coastguard Worker abort();
44*3ac0a46fSAndroid Build Coastguard Worker }
45*3ac0a46fSAndroid Build Coastguard Worker
46*3ac0a46fSAndroid Build Coastguard Worker #endif // defined(SK_BUILD_FOR_WIN) && !defined(__clang__)
47