summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Error.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-01-14 04:54:56 +0000
committerGreg Clayton <gclayton@apple.com>2011-01-14 04:54:56 +0000
commitca512b397c460e47e53efd98408a3ef274e436e7 (patch)
treedf7edcd194fc9aea4bea9fb52cd2fbbddb405176 /lldb/source/Core/Error.cpp
parent5ca139100383cdfb929d053099ffadb4ada12626 (diff)
downloadbcm5719-llvm-ca512b397c460e47e53efd98408a3ef274e436e7.tar.gz
bcm5719-llvm-ca512b397c460e47e53efd98408a3ef274e436e7.zip
Fixed an error in the type map for "char **" that was a bad memory smasher.
Anytime we had a valid python list that was trying to go from Python down into our C++ API, it was allocating too little memory and it ended up smashing whatever was next to the allocated memory. Added typemap conversions for "void *, size_t" so we can get SBProcess::ReadMemory() working. Also added a typemap for "const void *, size_t" so we can get SBProcess::WriteMemory() to work. Fixed an issue in the DWARF parser where we weren't correctly calculating the DeclContext for all types and classes. We now should be a lot more accurate. Fixes include: enums should now be setting their parent decl context correctly. We saw a lot of examples where enums in classes were not being properly namespace scoped. Also, classes within classes now get properly scoped. Fixed the objective C runtime pointer checkers to let "nil" pointers through since these are accepted by compiled code. We also now don't call "abort()" when a pointer doesn't validate correctly since this was wreaking havoc on the process due to the way abort() works. We now just dereference memory which should give us an exception from which we can easily and reliably recover. llvm-svn: 123428
Diffstat (limited to 'lldb/source/Core/Error.cpp')
-rw-r--r--lldb/source/Core/Error.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/lldb/source/Core/Error.cpp b/lldb/source/Core/Error.cpp
index 104dfc6d693..ee7d6f21cda 100644
--- a/lldb/source/Core/Error.cpp
+++ b/lldb/source/Core/Error.cpp
@@ -27,6 +27,13 @@
using namespace lldb;
using namespace lldb_private;
+Error::Error ():
+ m_code (0),
+ m_type (eErrorTypeInvalid),
+ m_string ()
+{
+}
+
//----------------------------------------------------------------------
// Default constructor
//----------------------------------------------------------------------
@@ -36,6 +43,14 @@ Error::Error(ValueType err, ErrorType type) :
m_string ()
{
}
+
+Error::Error (const Error &rhs) :
+ m_code (rhs.m_code),
+ m_type (rhs.m_type),
+ m_string (rhs.m_string)
+{
+}
+
//----------------------------------------------------------------------
// Assignment operator
//----------------------------------------------------------------------
OpenPOWER on IntegriCloud