Home | History | Annotate | Download | only in wtf
      1 /*
      2  *  Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
      3  *  Copyright (C) 2009 Google Inc. All rights reserved.
      4  *
      5  *  This library is free software; you can redistribute it and/or
      6  *  modify it under the terms of the GNU Library General Public
      7  *  License as published by the Free Software Foundation; either
      8  *  version 2 of the License, or (at your option) any later version.
      9  *
     10  *  This library is distributed in the hope that it will be useful,
     11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13  *  Library General Public License for more details.
     14  *
     15  *  You should have received a copy of the GNU Library General Public License
     16  *  along with this library; see the file COPYING.LIB.  If not, write to
     17  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18  *  Boston, MA 02110-1301, USA.
     19  *
     20  */
     21 
     22 #ifndef OwnFastMallocPtr_h
     23 #define OwnFastMallocPtr_h
     24 
     25 #include "FastMalloc.h"
     26 #include "Noncopyable.h"
     27 
     28 namespace WTF {
     29 
     30     template<class T> class OwnFastMallocPtr : public Noncopyable {
     31     public:
     32         explicit OwnFastMallocPtr(T* ptr) : m_ptr(ptr)
     33         {
     34         }
     35 
     36         ~OwnFastMallocPtr()
     37         {
     38             fastFree(m_ptr);
     39         }
     40 
     41         T* get() const { return m_ptr; }
     42         T* release() { T* ptr = m_ptr; m_ptr = 0; return ptr; }
     43 
     44     private:
     45         T* m_ptr;
     46     };
     47 
     48 } // namespace WTF
     49 
     50 using WTF::OwnFastMallocPtr;
     51 
     52 #endif // OwnFastMallocPtr_h
     53