| Index: sandbox/linux/seccomp-bpf/bpf_tester_compatibility_delegate.h
|
| diff --git a/sandbox/linux/seccomp-bpf/bpf_tester_compatibility_delegate.h b/sandbox/linux/seccomp-bpf/bpf_tester_compatibility_delegate.h
|
| index 5c2f3416b901447ce2d523ae7e69df843c2c9727..8890f798749a4c896439f51de889dd1070dea439 100644
|
| --- a/sandbox/linux/seccomp-bpf/bpf_tester_compatibility_delegate.h
|
| +++ b/sandbox/linux/seccomp-bpf/bpf_tester_compatibility_delegate.h
|
| @@ -17,30 +17,6 @@
|
|
|
| namespace sandbox {
|
|
|
| -namespace internal {
|
| -
|
| -// Internal helper class to hold a value of type T.
|
| -template <typename T>
|
| -class AuxHolder {
|
| - public:
|
| - AuxHolder() : val_() {}
|
| - T* get() { return &val_; }
|
| -
|
| - private:
|
| - T val_;
|
| -};
|
| -
|
| -// Specialization of AuxHolder for void.
|
| -// Returns a null pointer instead of allocating void.
|
| -template <>
|
| -class AuxHolder<void> {
|
| - public:
|
| - AuxHolder() {}
|
| - void* get() { return NULL; }
|
| -};
|
| -
|
| -} // namespace internal
|
| -
|
| // This templated class allows building a BPFTesterDelegate from a
|
| // deprecated-style BPF policy (that is a SyscallEvaluator function pointer,
|
| // instead of a SandboxBPFPolicy class), specified in |policy_function| and a
|
| @@ -48,14 +24,14 @@ class AuxHolder<void> {
|
| // This allows both the policy and the test function to take a pointer to an
|
| // object of type "Aux" as a parameter. This is used to implement the BPF_TEST
|
| // macro and should generally not be used directly.
|
| -template <class Aux = void>
|
| +template <class Aux>
|
| class BPFTesterCompatibilityDelegate : public BPFTesterDelegate {
|
| public:
|
| typedef Aux AuxType;
|
| BPFTesterCompatibilityDelegate(
|
| void (*test_function)(AuxType*),
|
| typename CompatibilityPolicy<AuxType>::SyscallEvaluator policy_function)
|
| - : aux_holder_(),
|
| + : aux_(),
|
| test_function_(test_function),
|
| policy_function_(policy_function) {}
|
|
|
| @@ -67,18 +43,18 @@ class BPFTesterCompatibilityDelegate : public BPFTesterDelegate {
|
| // to live forever. So it's ok to pass aux_pointer_for_policy_ to
|
| // the policy, which could in turn pass it to the kernel via Trap().
|
| return scoped_ptr<SandboxBPFPolicy>(
|
| - new CompatibilityPolicy<AuxType>(policy_function_, aux_holder_.get()));
|
| + new CompatibilityPolicy<AuxType>(policy_function_, &aux_));
|
| }
|
|
|
| virtual void RunTestFunction() OVERRIDE {
|
| // Run the actual test.
|
| // The current object is guaranteed to live forever in the child process
|
| // where this will run.
|
| - test_function_(aux_holder_.get());
|
| + test_function_(&aux_);
|
| }
|
|
|
| private:
|
| - internal::AuxHolder<AuxType> aux_holder_;
|
| + AuxType aux_;
|
| void (*test_function_)(AuxType*);
|
| typename CompatibilityPolicy<AuxType>::SyscallEvaluator policy_function_;
|
| DISALLOW_COPY_AND_ASSIGN(BPFTesterCompatibilityDelegate);
|
|
|