src/Spaces-inl.h
author David Anderson <dvander@alliedmods.net>
Tue Jul 24 23:53:34 2012 -0700 (2012-07-24)
changeset 86 32ad0523b309
parent 59 jitcraft/Spaces-inl.h@b7d61ddb3c8d
child 91 5f4402180204
permissions -rw-r--r--
Renamed jitcraft/ to src/, fixed some /Wp64 warnings.
     1 /* vim: set ts=4 sw=4 tw=99 et:
     2  *
     3  * Copyright (C) 2012 David Anderson
     4  *
     5  * This file is part of JITCraft.
     6  *
     7  * JITCraft is free software: you can redistribute it and/or modify it under
     8  * the terms of the GNU General Public License as published by the Free
     9  * Software Foundation, either version 3 of the License, or (at your option)
    10  * any later version.
    11  * 
    12  * Foobar is distributed in the hope that it will be useful, but WITHOUT ANY
    13  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    14  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
    15  *
    16  * You should have received a copy of the GNU General Public License along with
    17  * JITCraft. If not, see http://www.gnu.org/licenses/.
    18  */
    19 #ifndef _include_jitcraft_spaces_inl_h_
    20 #define _include_jitcraft_spaces_inl_h_
    21 
    22 namespace ke {
    23 
    24 inline Address
    25 HeapStack::allocate(size_t nbytes)
    26 {
    27     nbytes = Align(nbytes, kObjectAlignment);
    28 
    29     if (cursor_ + nbytes > chunk_->end())
    30         return NULL;
    31 
    32     Address ptr = cursor_;
    33     cursor_ += nbytes;
    34     return ptr;
    35 }
    36 
    37 inline void
    38 HeapStack::unwind(Address to)
    39 {
    40     assert(to <= cursor_ && to >= chunk_->first());
    41     cursor_ = to;
    42 }
    43 
    44 inline Address
    45 OldSpace::allocate(size_t nbytes)
    46 {
    47     assert(IsAligned(nbytes, kObjectAlignment));
    48 
    49     if (cursor_ + nbytes > last_->end())
    50         return allocateSlow(nbytes);
    51 
    52     Address addr = cursor_;
    53     cursor_ += nbytes;
    54     return addr;
    55 }
    56 
    57 }
    58 
    59 #endif // _include_jitcraft_spaces_inl_h_