|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef PPAPI_CPP_LOGGING_H_ | 
|  | #define PPAPI_CPP_LOGGING_H_ | 
|  |  | 
|  | /// @file | 
|  | /// This file defines two macro asserts. | 
|  |  | 
|  | #include <cassert> | 
|  |  | 
|  | /// This macro asserts that 'a' evaluates to true. In debug mode, this macro | 
|  | /// will crash the program if the assertion evaluates to false. It (typically) | 
|  | /// has no effect in release mode. | 
|  | #define PP_DCHECK(a) assert(a) | 
|  |  | 
|  | /// This macro asserts false in debug builds. It's used in code paths that you | 
|  | /// don't expect to execute. | 
|  | /// | 
|  | /// <strong>Example:</strong> | 
|  | /// | 
|  | /// @code | 
|  | /// if (!pointer) { | 
|  | /// // Pointer wasn't valid! This shouldn't happen. | 
|  | /// PP_NOTREACHED(); | 
|  | /// return; | 
|  | /// } | 
|  | /// // Do stuff to the pointer, since you know it's valid. | 
|  | /// pointer->DoSomething(); | 
|  | /// @endcode | 
|  | #define PP_NOTREACHED() assert(false) | 
|  |  | 
|  | #endif  // PPAPI_CPP_LOGGING_H_ |