summaryrefslogtreecommitdiff
path: root/bindgen-integration/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'bindgen-integration/cpp')
-rw-r--r--bindgen-integration/cpp/Test.cc11
-rw-r--r--bindgen-integration/cpp/Test.h8
2 files changed, 18 insertions, 1 deletions
diff --git a/bindgen-integration/cpp/Test.cc b/bindgen-integration/cpp/Test.cc
index 1d962406..7b0ec4ad 100644
--- a/bindgen-integration/cpp/Test.cc
+++ b/bindgen-integration/cpp/Test.cc
@@ -21,6 +21,15 @@ Test::Test(double foo)
, m_double(foo)
{}
+AutoRestoreBool::AutoRestoreBool(bool* ptr)
+ : m_ptr(ptr)
+ , m_value(*ptr)
+{}
+
+AutoRestoreBool::~AutoRestoreBool() {
+ *m_ptr = m_value;
+}
+
namespace bitfields {
bool
@@ -47,4 +56,4 @@ Third::assert(int first, bool second, ItemKind third)
kind == third;
}
-}
+} // namespace bitfields
diff --git a/bindgen-integration/cpp/Test.h b/bindgen-integration/cpp/Test.h
index 310478bb..01c7aea1 100644
--- a/bindgen-integration/cpp/Test.h
+++ b/bindgen-integration/cpp/Test.h
@@ -64,3 +64,11 @@ struct Third {
};
} // namespace bitfields
+
+struct AutoRestoreBool {
+ bool* m_ptr;
+ bool m_value;
+
+ AutoRestoreBool(bool*);
+ ~AutoRestoreBool();
+};