1 /*
2 * Copyright 2009, The Android Open Source Project
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 #include "CachedPrefix.h"
27 #include "CachedInput.h"
28
29 namespace android {
30
31 #if DUMP_NAV_CACHE
32
33 #define DEBUG_PRINT_BOOL(field) \
34 DUMP_NAV_LOGD("// bool " #field "=%s;\n", b->field ? "true" : "false")
35
base() const36 CachedInput* CachedInput::Debug::base() const {
37 CachedInput* nav = (CachedInput*) ((char*) this - OFFSETOF(CachedInput, mDebug));
38 return nav;
39 }
40
printWebCoreString(const char * label,const WebCore::String & string)41 static void printWebCoreString(const char* label,
42 const WebCore::String& string) {
43 char scratch[256];
44 size_t index = snprintf(scratch, sizeof(scratch), label);
45 const UChar* ch = string.characters();
46 while (ch && *ch && index < sizeof(scratch)) {
47 UChar c = *ch++;
48 if (c < ' ' || c >= 0x7f) c = ' ';
49 scratch[index++] = c;
50 }
51 DUMP_NAV_LOGD("%.*s\"\n", index, scratch);
52 }
53
print() const54 void CachedInput::Debug::print() const
55 {
56 CachedInput* b = base();
57 printWebCoreString("// char* mName=\"", b->mName);
58 DUMP_NAV_LOGD("// void* mForm=%p;", b->mForm);
59 DUMP_NAV_LOGD("// int mMaxLength=%d;\n", b->mMaxLength);
60 DUMP_NAV_LOGD("// int mTextSize=%d;\n", b->mTextSize);
61 DUMP_NAV_LOGD("// int mInputType=%d;\n", b->mInputType);
62 DUMP_NAV_LOGD("// int mPaddingLeft=%d;\n", b->mPaddingLeft);
63 DUMP_NAV_LOGD("// int mPaddingTop=%d;\n", b->mPaddingTop);
64 DUMP_NAV_LOGD("// int mPaddingRight=%d;\n", b->mPaddingRight);
65 DUMP_NAV_LOGD("// int mPaddingBottom=%d;\n", b->mPaddingBottom);
66 DEBUG_PRINT_BOOL(mIsRtlText);
67 DEBUG_PRINT_BOOL(mIsTextField);
68 }
69
70 #endif
71
72 }
73