| Index: third_party/tcmalloc/chromium/src/google/malloc_hook_c.h
 | 
| ===================================================================
 | 
| --- third_party/tcmalloc/chromium/src/google/malloc_hook_c.h	(revision 126022)
 | 
| +++ third_party/tcmalloc/chromium/src/google/malloc_hook_c.h	(working copy)
 | 
| @@ -26,9 +26,148 @@
 | 
|   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
|   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
|   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
| + *
 | 
| + * --
 | 
| + * Author: Craig Silverstein
 | 
| + *
 | 
| + * C shims for the C++ malloc_hook.h.  See malloc_hook.h for details
 | 
| + * on how to use these.
 | 
|   */
 | 
|  
 | 
| -/* The code has moved to gperftools/.  Use that include-directory for
 | 
| - * new code.
 | 
| +#ifndef _MALLOC_HOOK_C_H_
 | 
| +#define _MALLOC_HOOK_C_H_
 | 
| +
 | 
| +#include <stddef.h>
 | 
| +#include <sys/types.h>
 | 
| +
 | 
| +/* Annoying stuff for windows; makes sure clients can import these functions */
 | 
| +#ifndef PERFTOOLS_DLL_DECL
 | 
| +# ifdef _WIN32
 | 
| +#   define PERFTOOLS_DLL_DECL  __declspec(dllimport)
 | 
| +# else
 | 
| +#   define PERFTOOLS_DLL_DECL
 | 
| +# endif
 | 
| +#endif
 | 
| +
 | 
| +#ifdef __cplusplus
 | 
| +extern "C" {
 | 
| +#endif
 | 
| +
 | 
| +/* Get the current stack trace.  Try to skip all routines up to and
 | 
| + * and including the caller of MallocHook::Invoke*.
 | 
| + * Use "skip_count" (similarly to GetStackTrace from stacktrace.h)
 | 
| + * as a hint about how many routines to skip if better information
 | 
| + * is not available.
 | 
|   */
 | 
| -#include <gperftools/malloc_hook_c.h>
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_GetCallerStackTrace(void** result, int max_depth,
 | 
| +                                   int skip_count);
 | 
| +
 | 
| +/* The MallocHook_{Add,Remove}*Hook functions return 1 on success and 0 on
 | 
| + * failure.
 | 
| + */
 | 
| +
 | 
| +typedef void (*MallocHook_NewHook)(const void* ptr, size_t size);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddNewHook(MallocHook_NewHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemoveNewHook(MallocHook_NewHook hook);
 | 
| +
 | 
| +typedef void (*MallocHook_DeleteHook)(const void* ptr);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddDeleteHook(MallocHook_DeleteHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemoveDeleteHook(MallocHook_DeleteHook hook);
 | 
| +
 | 
| +typedef void (*MallocHook_PreMmapHook)(const void *start,
 | 
| +                                       size_t size,
 | 
| +                                       int protection,
 | 
| +                                       int flags,
 | 
| +                                       int fd,
 | 
| +                                       off_t offset);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddPreMmapHook(MallocHook_PreMmapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemovePreMmapHook(MallocHook_PreMmapHook hook);
 | 
| +
 | 
| +typedef void (*MallocHook_MmapHook)(const void* result,
 | 
| +                                    const void* start,
 | 
| +                                    size_t size,
 | 
| +                                    int protection,
 | 
| +                                    int flags,
 | 
| +                                    int fd,
 | 
| +                                    off_t offset);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddMmapHook(MallocHook_MmapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemoveMmapHook(MallocHook_MmapHook hook);
 | 
| +
 | 
| +typedef int (*MallocHook_MmapReplacement)(const void* start,
 | 
| +                                          size_t size,
 | 
| +                                          int protection,
 | 
| +                                          int flags,
 | 
| +                                          int fd,
 | 
| +                                          off_t offset,
 | 
| +                                          void** result);
 | 
| +int MallocHook_SetMmapReplacement(MallocHook_MmapReplacement hook);
 | 
| +int MallocHook_RemoveMmapReplacement(MallocHook_MmapReplacement hook);
 | 
| +
 | 
| +typedef void (*MallocHook_MunmapHook)(const void* ptr, size_t size);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddMunmapHook(MallocHook_MunmapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemoveMunmapHook(MallocHook_MunmapHook hook);
 | 
| +
 | 
| +typedef int (*MallocHook_MunmapReplacement)(const void* ptr,
 | 
| +                                            size_t size,
 | 
| +                                            int* result);
 | 
| +int MallocHook_SetMunmapReplacement(MallocHook_MunmapReplacement hook);
 | 
| +int MallocHook_RemoveMunmapReplacement(MallocHook_MunmapReplacement hook);
 | 
| +
 | 
| +typedef void (*MallocHook_MremapHook)(const void* result,
 | 
| +                                      const void* old_addr,
 | 
| +                                      size_t old_size,
 | 
| +                                      size_t new_size,
 | 
| +                                      int flags,
 | 
| +                                      const void* new_addr);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddMremapHook(MallocHook_MremapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemoveMremapHook(MallocHook_MremapHook hook);
 | 
| +
 | 
| +typedef void (*MallocHook_PreSbrkHook)(std::ptrdiff_t increment);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddPreSbrkHook(MallocHook_PreSbrkHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemovePreSbrkHook(MallocHook_PreSbrkHook hook);
 | 
| +
 | 
| +typedef void (*MallocHook_SbrkHook)(const void* result, std::ptrdiff_t increment);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_AddSbrkHook(MallocHook_SbrkHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +int MallocHook_RemoveSbrkHook(MallocHook_SbrkHook hook);
 | 
| +
 | 
| +/* The following are DEPRECATED. */
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_NewHook MallocHook_SetNewHook(MallocHook_NewHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_DeleteHook MallocHook_SetDeleteHook(MallocHook_DeleteHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_PreMmapHook MallocHook_SetPreMmapHook(MallocHook_PreMmapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_MmapHook MallocHook_SetMmapHook(MallocHook_MmapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_MunmapHook MallocHook_SetMunmapHook(MallocHook_MunmapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_MremapHook MallocHook_SetMremapHook(MallocHook_MremapHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_PreSbrkHook MallocHook_SetPreSbrkHook(MallocHook_PreSbrkHook hook);
 | 
| +PERFTOOLS_DLL_DECL
 | 
| +MallocHook_SbrkHook MallocHook_SetSbrkHook(MallocHook_SbrkHook hook);
 | 
| +/* End of DEPRECATED functions. */
 | 
| +
 | 
| +#ifdef __cplusplus
 | 
| +}   // extern "C"
 | 
| +#endif
 | 
| +
 | 
| +#endif /* _MALLOC_HOOK_C_H_ */
 | 
| 
 |