mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2025-01-10 23:35:28 +00:00
Breakpad DWARF parser: Don't use auto_ptr<stack<uint64> > where stack<uint64> would do.
Perhaps there once was some reason one needed the DIE offset stack to have an unusual lifetime, but there is none now. a=jimblandy, r=mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@666 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
16f2f37682
commit
42943c2391
|
@ -39,7 +39,6 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
@ -494,11 +493,8 @@ void CompilationUnit::ProcessDIEs() {
|
||||||
else
|
else
|
||||||
lengthstart += 4;
|
lengthstart += 4;
|
||||||
|
|
||||||
// we need semantics of boost scoped_ptr here - no intention of trasnferring
|
stack<uint64> die_stack;
|
||||||
// ownership of the stack. use const, but then we limit ourselves to not
|
|
||||||
// ever being able to call .reset() on the smart pointer.
|
|
||||||
std::auto_ptr<stack<uint64> > const die_stack(new stack<uint64>);
|
|
||||||
|
|
||||||
while (dieptr < (lengthstart + header_.length)) {
|
while (dieptr < (lengthstart + header_.length)) {
|
||||||
// We give the user the absolute offset from the beginning of
|
// We give the user the absolute offset from the beginning of
|
||||||
// debug_info, since they need it to deal with ref_addr forms.
|
// debug_info, since they need it to deal with ref_addr forms.
|
||||||
|
@ -510,8 +506,8 @@ void CompilationUnit::ProcessDIEs() {
|
||||||
|
|
||||||
// Abbrev == 0 represents the end of a list of children.
|
// Abbrev == 0 represents the end of a list of children.
|
||||||
if (abbrev_num == 0) {
|
if (abbrev_num == 0) {
|
||||||
const uint64 offset = die_stack->top();
|
const uint64 offset = die_stack.top();
|
||||||
die_stack->pop();
|
die_stack.pop();
|
||||||
handler_->EndDIE(offset);
|
handler_->EndDIE(offset);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -525,7 +521,7 @@ void CompilationUnit::ProcessDIEs() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (abbrev.has_children) {
|
if (abbrev.has_children) {
|
||||||
die_stack->push(absolute_offset);
|
die_stack.push(absolute_offset);
|
||||||
} else {
|
} else {
|
||||||
handler_->EndDIE(absolute_offset);
|
handler_->EndDIE(absolute_offset);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue