|  | // 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_ |