OLD | NEW |
1 // Copyright (c) 2010 Google Inc. All Rights Reserved. | 1 // Copyright (c) 2010 Google Inc. All Rights Reserved. |
2 // | 2 // |
3 // Redistribution and use in source and binary forms, with or without | 3 // Redistribution and use in source and binary forms, with or without |
4 // modification, are permitted provided that the following conditions are | 4 // modification, are permitted provided that the following conditions are |
5 // met: | 5 // met: |
6 // | 6 // |
7 // * Redistributions of source code must retain the above copyright | 7 // * Redistributions of source code must retain the above copyright |
8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
9 // * Redistributions in binary form must reproduce the above | 9 // * Redistributions in binary form must reproduce the above |
10 // copyright notice, this list of conditions and the following disclaimer | 10 // copyright notice, this list of conditions and the following disclaimer |
(...skipping 14 matching lines...) Expand all Loading... |
25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 | 28 |
29 // Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com> | 29 // Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com> |
30 | 30 |
31 // dwarf2diehandler.cc: Implement the dwarf2reader::DieDispatcher class. | 31 // dwarf2diehandler.cc: Implement the dwarf2reader::DieDispatcher class. |
32 // See dwarf2diehandler.h for details. | 32 // See dwarf2diehandler.h for details. |
33 | 33 |
34 #include <assert.h> | 34 #include <assert.h> |
| 35 #include <stdint.h> |
35 | 36 |
36 #include <string> | 37 #include <string> |
37 | 38 |
38 #include "common/dwarf/dwarf2diehandler.h" | 39 #include "common/dwarf/dwarf2diehandler.h" |
39 #include "common/using_std_string.h" | 40 #include "common/using_std_string.h" |
40 | 41 |
41 namespace dwarf2reader { | 42 namespace dwarf2reader { |
42 | 43 |
43 DIEDispatcher::~DIEDispatcher() { | 44 DIEDispatcher::~DIEDispatcher() { |
44 while (!die_handlers_.empty()) { | 45 while (!die_handlers_.empty()) { |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 uint64 data) { | 161 uint64 data) { |
161 HandlerStack ¤t = die_handlers_.top(); | 162 HandlerStack ¤t = die_handlers_.top(); |
162 // This had better be an attribute of the DIE we were meant to handle. | 163 // This had better be an attribute of the DIE we were meant to handle. |
163 assert(offset == current.offset_); | 164 assert(offset == current.offset_); |
164 current.handler_->ProcessAttributeReference(attr, form, data); | 165 current.handler_->ProcessAttributeReference(attr, form, data); |
165 } | 166 } |
166 | 167 |
167 void DIEDispatcher::ProcessAttributeBuffer(uint64 offset, | 168 void DIEDispatcher::ProcessAttributeBuffer(uint64 offset, |
168 enum DwarfAttribute attr, | 169 enum DwarfAttribute attr, |
169 enum DwarfForm form, | 170 enum DwarfForm form, |
170 const char* data, | 171 const uint8_t *data, |
171 uint64 len) { | 172 uint64 len) { |
172 HandlerStack ¤t = die_handlers_.top(); | 173 HandlerStack ¤t = die_handlers_.top(); |
173 // This had better be an attribute of the DIE we were meant to handle. | 174 // This had better be an attribute of the DIE we were meant to handle. |
174 assert(offset == current.offset_); | 175 assert(offset == current.offset_); |
175 current.handler_->ProcessAttributeBuffer(attr, form, data, len); | 176 current.handler_->ProcessAttributeBuffer(attr, form, data, len); |
176 } | 177 } |
177 | 178 |
178 void DIEDispatcher::ProcessAttributeString(uint64 offset, | 179 void DIEDispatcher::ProcessAttributeString(uint64 offset, |
179 enum DwarfAttribute attr, | 180 enum DwarfAttribute attr, |
180 enum DwarfForm form, | 181 enum DwarfForm form, |
181 const string& data) { | 182 const string& data) { |
182 HandlerStack ¤t = die_handlers_.top(); | 183 HandlerStack ¤t = die_handlers_.top(); |
183 // This had better be an attribute of the DIE we were meant to handle. | 184 // This had better be an attribute of the DIE we were meant to handle. |
184 assert(offset == current.offset_); | 185 assert(offset == current.offset_); |
185 current.handler_->ProcessAttributeString(attr, form, data); | 186 current.handler_->ProcessAttributeString(attr, form, data); |
186 } | 187 } |
187 | 188 |
188 void DIEDispatcher::ProcessAttributeSignature(uint64 offset, | 189 void DIEDispatcher::ProcessAttributeSignature(uint64 offset, |
189 enum DwarfAttribute attr, | 190 enum DwarfAttribute attr, |
190 enum DwarfForm form, | 191 enum DwarfForm form, |
191 uint64 signature) { | 192 uint64 signature) { |
192 HandlerStack ¤t = die_handlers_.top(); | 193 HandlerStack ¤t = die_handlers_.top(); |
193 // This had better be an attribute of the DIE we were meant to handle. | 194 // This had better be an attribute of the DIE we were meant to handle. |
194 assert(offset == current.offset_); | 195 assert(offset == current.offset_); |
195 current.handler_->ProcessAttributeSignature(attr, form, signature); | 196 current.handler_->ProcessAttributeSignature(attr, form, signature); |
196 } | 197 } |
197 | 198 |
198 } // namespace dwarf2reader | 199 } // namespace dwarf2reader |
OLD | NEW |