Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: Source/bindings/v8/custom/V8SQLTransactionCustom.cpp

Issue 103473002: Manage WebSQL callbacks with OwnPtr instead of refcounting (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix RefPtr/OwnPtr transition gcc errors Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, sqlValu e, value); 83 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, sqlValu e, value);
84 sqlValues.append(SQLValue(sqlValue)); 84 sqlValues.append(SQLValue(sqlValue));
85 } 85 }
86 } 86 }
87 } 87 }
88 88
89 SQLTransaction* transaction = V8SQLTransaction::toNative(info.Holder()); 89 SQLTransaction* transaction = V8SQLTransaction::toNative(info.Holder());
90 90
91 ExecutionContext* executionContext = getExecutionContext(); 91 ExecutionContext* executionContext = getExecutionContext();
92 92
93 RefPtr<SQLStatementCallback> callback; 93 OwnPtr<SQLStatementCallback> callback;
94 if (info.Length() > 2 && !isUndefinedOrNull(info[2])) { 94 if (info.Length() > 2 && !isUndefinedOrNull(info[2])) {
95 if (!info[2]->IsObject()) { 95 if (!info[2]->IsObject()) {
96 setDOMException(TypeMismatchError, info.GetIsolate()); 96 setDOMException(TypeMismatchError, info.GetIsolate());
97 return; 97 return;
98 } 98 }
99 callback = V8SQLStatementCallback::create(info[2], executionContext); 99 callback = V8SQLStatementCallback::create(info[2], executionContext);
100 } 100 }
101 101
102 RefPtr<SQLStatementErrorCallback> errorCallback; 102 OwnPtr<SQLStatementErrorCallback> errorCallback;
103 if (info.Length() > 3 && !isUndefinedOrNull(info[3])) { 103 if (info.Length() > 3 && !isUndefinedOrNull(info[3])) {
104 if (!info[3]->IsObject()) { 104 if (!info[3]->IsObject()) {
105 setDOMException(TypeMismatchError, info.GetIsolate()); 105 setDOMException(TypeMismatchError, info.GetIsolate());
106 return; 106 return;
107 } 107 }
108 errorCallback = V8SQLStatementErrorCallback::create(info[3], executionCo ntext); 108 errorCallback = V8SQLStatementErrorCallback::create(info[3], executionCo ntext);
109 } 109 }
110 110
111 ExceptionState exceptionState(info.Holder(), info.GetIsolate()); 111 ExceptionState exceptionState(info.Holder(), info.GetIsolate());
112 transaction->executeSQL(statement, sqlValues, callback, errorCallback, excep tionState); 112 transaction->executeSQL(statement, sqlValues, callback.release(), errorCallb ack.release(), exceptionState);
113 exceptionState.throwIfNeeded(); 113 exceptionState.throwIfNeeded();
114 } 114 }
115 115
116 } // namespace WebCore 116 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/bindings/scripts/code_generator_v8.pm ('k') | Source/core/inspector/InspectorDatabaseAgent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698