| // Copyright 2016 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef BASE_MEMORY_FREE_DELETER_H_ | |
| #define BASE_MEMORY_FREE_DELETER_H_ | |
| #include <stdlib.h> | |
| namespace base { | |
| // Function object which invokes 'free' on its parameter, which must be | |
| // a pointer. Can be used to store malloc-allocated pointers in std::unique_ptr: | |
| // | |
| // std::unique_ptr<int, base::FreeDeleter> foo_ptr( | |
| // static_cast<int*>(malloc(sizeof(int)))); | |
| struct FreeDeleter { | |
| inline void operator()(void* ptr) const { free(ptr); } | |
| }; | |
| } // namespace base | |
| #endif // BASE_MEMORY_FREE_DELETER_H_ |