GDB (xrefs)
Loading...
Searching...
No Matches
gdb
python
py-ref.h
Go to the documentation of this file.
1
/* Python reference-holding class
2
3
Copyright (C) 2016-2023 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 PYTHON_PY_REF_H
21
#define PYTHON_PY_REF_H
22
23
#include "gdbsupport/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
/* PYTHON_PY_REF_H */
gdbpy_ref
gdb::ref_ptr< T, gdbpy_ref_policy< T > > gdbpy_ref
Definition
py-ref.h:42
T
Definition
1.cc:26
gdbpy_ref_policy
Definition
py-ref.h:28
gdbpy_ref_policy::incref
static void incref(T *ptr)
Definition
py-ref.h:29
gdbpy_ref_policy::decref
static void decref(T *ptr)
Definition
py-ref.h:34
Generated by
1.10.0