OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 #if ENABLE(OILPAN) | 81 #if ENABLE(OILPAN) |
82 class TransactionObserver { | 82 class TransactionObserver { |
83 public: | 83 public: |
84 explicit TransactionObserver(SQLTransactionSync& transaction) : m_transa
ction(transaction) { } | 84 explicit TransactionObserver(SQLTransactionSync& transaction) : m_transa
ction(transaction) { } |
85 ~TransactionObserver(); | 85 ~TransactionObserver(); |
86 | 86 |
87 private: | 87 private: |
88 SQLTransactionSync& m_transaction; | 88 SQLTransactionSync& m_transaction; |
89 }; | 89 }; |
90 | 90 |
| 91 // Need a Persistent field because a HeapHashMap entry should be removed |
| 92 // just after a SQLTransactionSync becomes untraceable. If this field was a |
| 93 // Member<>, we could not assume the destruction order of DatabaseSync, |
| 94 // SQLTransactionSync, and the field. We can not make the field static |
| 95 // because multiple worker threads create SQLTransactionSync. |
91 GC_PLUGIN_IGNORE("http://crbug.com/353083") | 96 GC_PLUGIN_IGNORE("http://crbug.com/353083") |
92 PersistentHeapHashMap<WeakMember<SQLTransactionSync>, OwnPtr<TransactionObse
rver> > m_observers; | 97 PersistentHeapHashMap<WeakMember<SQLTransactionSync>, OwnPtr<TransactionObse
rver> > m_observers; |
93 #endif | 98 #endif |
94 | 99 |
95 String m_lastErrorMessage; | 100 String m_lastErrorMessage; |
96 | 101 |
97 friend class DatabaseManager; | 102 friend class DatabaseManager; |
98 friend class DatabaseServer; // FIXME: remove this when the backend has been
split out. | 103 friend class DatabaseServer; // FIXME: remove this when the backend has been
split out. |
99 }; | 104 }; |
100 | 105 |
101 } // namespace WebCore | 106 } // namespace WebCore |
102 | 107 |
103 #endif | 108 #endif |
OLD | NEW |