16e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines/* 26e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * Copyright 2011-2012, The Android Open Source Project 36e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * 46e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 56e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * you may not use this file except in compliance with the License. 66e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * You may obtain a copy of the License at 76e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * 86e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * http://www.apache.org/licenses/LICENSE-2.0 96e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * 106e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * Unless required by applicable law or agreed to in writing, software 116e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 126e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * See the License for the specific language governing permissions and 146e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines * limitations under the License. 156e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines */ 166e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 176e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#ifndef _FRAMEWORKS_COMPILE_LIBBCC_INCLUDE_BCC_ASSERT_H_ // NOLINT 186e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#define _FRAMEWORKS_COMPILE_LIBBCC_INCLUDE_BCC_ASSERT_H_ 196e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 206e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#ifdef __cplusplus 216e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#include <cstdlib> 226e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#include <cstdio> 236e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#else 246e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#include <stdlib.h> 256e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#include <stdio.h> 266e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#endif // __cplusplus 276e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 286e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#ifdef __DISABLE_ASSERTS 296e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 306e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#define bccAssert(v) do {} while (0) 316e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 326e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#else 336e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 346e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#define LOG_TAG "bcc" 356e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#include <cutils/log.h> 366e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 376e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#define __ABORT_ON_FAILURES 1 386e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 396e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#define bccAssert(v) \ 406e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines do { \ 416e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines if (!(v)) { \ 426e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines ALOGE("bccAssert failed at %s:%d - '%s'\n", \ 436e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines __FILE__, __LINE__, #v); \ 446e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines if (__ABORT_ON_FAILURES) { \ 456e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines abort(); \ 466e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines } \ 476e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines } \ 486e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines } while (0) 496e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 506e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#endif // __DISABLE_ASSERTS 516e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines 526e9e89d1ed049ec931bb1000948c12698e6c5484Stephen Hines#endif // _FRAMEWORKS_COMPILE_LIBBCC_INCLUDE_BCC_ASSERT_H_ NOLINT 53