GDB (xrefs)
python
py-ref.h
Go to the documentation of this file.
1
/* Python reference-holding class
2
3
Copyright (C) 2016-2018 Free Software Foundation, Inc.
4
5
This file is part of GDB.
6
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 3 of the License, or
10
(at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20
#ifndef GDB_PYTHON_REF_H
21
#define GDB_PYTHON_REF_H
22
23
#include "
common/gdb_ref_ptr.h
"
24
25
/* A policy class for gdb::ref_ptr for Python reference counting. */
26
template
<
typename
T>
27
struct
gdbpy_ref_policy
28
{
29
static
void
incref
(T *ptr)
30
{
31
Py_INCREF (ptr);
32
}
33
34
static
void
decref
(T *ptr)
35
{
36
Py_DECREF
(ptr);
37
}
38
};
39
40
/* A gdb::ref_ptr that has been specialized for Python objects or
41
their "subclasses". */
42
template
<
typename
T = PyObject>
using
gdbpy_ref
43
=
gdb::ref_ptr<T, gdbpy_ref_policy<T>
>;
44
45
#endif
/* GDB_PYTHON_REF_H */
Py_DECREF
#define Py_DECREF(op)
Definition:
python-internal.h:204
gdbpy_ref_policy::incref
static void incref(T *ptr)
Definition:
py-ref.h:29
gdb::ref_ptr< T, gdbpy_ref_policy< T > >
gdbpy_ref_policy::decref
static void decref(T *ptr)
Definition:
py-ref.h:34
gdbpy_ref_policy
Definition:
py-ref.h:27
gdb_ref_ptr.h
Generated by
1.8.14