mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-05-08 11:38:19 +03:00
use c++11 std::align from <memory> (#2026)
* use c++11 std::align from <memory> * for Ubuntu, use gcc5 instead of 4.8 * use travis to set gcc to 5 eval and sudo * use eval in .travis.yml * use gcc-8 * replace precise with trusty llvm toolchain, because we have been using trusty for awhile now * push things to matrix, so we can support multiple releases if we want * we should not be allowing for failures, we are ready to start trusting clang and its analyzer * scan-build was pushed to another package * use gcc-8 still but wrap in scan-build * travis.yml cleanup, have output of scripts go to stdout, make search for substring a regex use double [] fix missing , use bash to use regex black spaces matter * set human readable names for our various builds, split out our static analysis between openmw and openmw-cs * test if not set, then set otherwise ignore * use quotes * do not eval it, set it in travis env * no more && * what does clang7 have to say? * use sourceline for now * use clang-7 instead of clang-7.0 * yes, llvm-toolchain-trusty-7 not llvm-toolchain-trusty-7.0 * for static analysis, openmw is compiled and checked on its own while openmw-cs is build with all the rest. this might change in the future. and actually do it the other way around
This commit is contained in:
parent
3751bc2c11
commit
9ae077c033
5 changed files with 59 additions and 35 deletions
|
@ -86,17 +86,6 @@ namespace DetourNavigator
|
|||
return static_cast<std::size_t*>(ptr) + 1;
|
||||
}
|
||||
|
||||
// TODO: use std::align
|
||||
inline void* align(std::size_t align, std::size_t size, void*& ptr, std::size_t& space) noexcept
|
||||
{
|
||||
const auto intptr = reinterpret_cast<std::uintptr_t>(ptr);
|
||||
const auto aligned = (intptr - 1u + align) & - align;
|
||||
const auto diff = aligned - intptr;
|
||||
if ((size + diff) > space)
|
||||
return nullptr;
|
||||
space -= diff;
|
||||
return ptr = reinterpret_cast<void*>(aligned);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace DetourNavigator
|
|||
std::size_t space = mStack.size() - getUsedSize();
|
||||
void* top = mTop;
|
||||
const auto itemSize = 2 * sizeof(std::size_t) + size;
|
||||
if (rcUnlikely(!align(sizeof(std::size_t), itemSize, top, space)))
|
||||
if (rcUnlikely(!std::align(sizeof(std::size_t), itemSize, top, space)))
|
||||
return nullptr;
|
||||
setTempPtrBufferType(top, BufferType_temp);
|
||||
setTempPtrPrev(top, mPrev);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue