|
- // Leo is pleased to support the open source community by making ncnn available.
- //
- // Copyright (C) 2018 Leo <leo@nullptr.com.cn>. All rights reserved.
- //
- // Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
- // in compliance with the License. You may obtain a copy of the License at
- //
- // https://opensource.org/licenses/BSD-3-Clause
- //
- // Unless required by applicable law or agreed to in writing, software distributed
- // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- // CONDITIONS OF ANY KIND, either express or implied. See the License for the
- // specific language governing permissions and limitations under the License.
-
- #include "platform.h"
-
- #if NCNN_SIMPLESTL
-
- #include <stdlib.h>
-
- // allocation functions
- void* operator new(size_t size)
- {
- return malloc(size);
- }
-
- void* operator new[](size_t size)
- {
- return malloc(size);
- }
-
- // placement allocation functions
- void* operator new(size_t /*size*/, void* ptr)
- {
- return ptr;
- }
-
- void* operator new[](size_t /*size*/, void* ptr)
- {
- return ptr;
- }
-
- // deallocation functions
- void operator delete(void* ptr)
- {
- free(ptr);
- }
-
- void operator delete[](void* ptr)
- {
- free(ptr);
- }
-
- // deallocation functions since c++14
- #if __cplusplus >= 201402L
-
- void operator delete(void* ptr, size_t sz)
- {
- free(ptr);
- }
-
- void operator delete[](void* ptr, size_t sz)
- {
- free(ptr);
- }
-
- #endif
-
- // placement deallocation functions
- void operator delete(void* /*ptr*/, void* /*voidptr2*/)
- {
- }
-
- void operator delete[](void* /*ptr*/, void* /*voidptr2*/)
- {
- }
-
- extern "C" void __cxa_pure_virtual()
- {
- NCNN_LOGE("[Fatal] Pure virtual func called, now exit.");
- // do not abort here to avoid more unpredictable behaviour
- }
-
- #endif // NCNN_SIMPLESTL
|