~alinuxninja/nginx-edge/trunk

« back to all changes in this revision

Viewing changes to debian/modules/ngx_pagespeed/psol/include/third_party/jsoncpp/src/include/json/assertions.h

  • Committer: Vivian
  • Date: 2015-12-04 18:20:11 UTC
  • Revision ID: git-v1:a36f2bc32e884f7473b3a47040e5411306144d7d
* Do not extract psol.tar.gz

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright 2007-2010 Baptiste Lepilleur
2
 
// Distributed under MIT license, or public domain if desired and
3
 
// recognized in your jurisdiction.
4
 
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5
 
 
6
 
#ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED
7
 
#define CPPTL_JSON_ASSERTIONS_H_INCLUDED
8
 
 
9
 
#include <stdlib.h>
10
 
 
11
 
#if !defined(JSON_IS_AMALGAMATION)
12
 
#include "config.h"
13
 
#endif // if !defined(JSON_IS_AMALGAMATION)
14
 
 
15
 
#if JSON_USE_EXCEPTION
16
 
#include <stdexcept>
17
 
#define JSON_ASSERT(condition)                                                 \
18
 
  assert(condition); // @todo <= change this into an exception throw
19
 
#define JSON_FAIL_MESSAGE(message) throw std::runtime_error(message);
20
 
#else // JSON_USE_EXCEPTION
21
 
#define JSON_ASSERT(condition) assert(condition);
22
 
 
23
 
// The call to assert() will show the failure message in debug builds. In
24
 
// release bugs we write to invalid memory in order to crash hard, so that a
25
 
// debugger or crash reporter gets the chance to take over. We still call exit()
26
 
// afterward in order to tell the compiler that this macro doesn't return.
27
 
#define JSON_FAIL_MESSAGE(message)                                             \
28
 
  {                                                                            \
29
 
    assert(false&& message);                                                   \
30
 
    strcpy(reinterpret_cast<char*>(666), message);                             \
31
 
    exit(123);                                                                 \
32
 
  }
33
 
 
34
 
#endif
35
 
 
36
 
#define JSON_ASSERT_MESSAGE(condition, message)                                \
37
 
  if (!(condition)) {                                                          \
38
 
    JSON_FAIL_MESSAGE(message)                                                 \
39
 
  }
40
 
 
41
 
#endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED