mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 01:20:42 +00:00
768e812e45
* On windows it's strongly desired to be able to compile straight out of a clean checkout or source download. This means anyone can download the source and investigate something quickly, without having to worry about the hassle of figuring out how the project downloads 3rd party dependencies, fetching them, getting them registered in the right place. * This can't be put in a submodule as git submodules don't get downloaded by default so people new to git will get confusing compilation messages, and someone downloading the source from github directly without cloning via git won't get submodules included. * It does add some extra size to a fresh download/checkout which is unfortunate, but absolutely worth the cost. Shallow checkouts still aren't unfeasibly large, and it's only a one-off cost at clone time.
47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
#ifndef Py_ASDL_H
|
|
#define Py_ASDL_H
|
|
|
|
typedef PyObject * identifier;
|
|
typedef PyObject * string;
|
|
typedef PyObject * bytes;
|
|
typedef PyObject * object;
|
|
typedef PyObject * singleton;
|
|
typedef PyObject * constant;
|
|
|
|
/* It would be nice if the code generated by asdl_c.py was completely
|
|
independent of Python, but it is a goal the requires too much work
|
|
at this stage. So, for example, I'll represent identifiers as
|
|
interned Python strings.
|
|
*/
|
|
|
|
/* XXX A sequence should be typed so that its use can be typechecked. */
|
|
|
|
typedef struct {
|
|
Py_ssize_t size;
|
|
void *elements[1];
|
|
} asdl_seq;
|
|
|
|
typedef struct {
|
|
Py_ssize_t size;
|
|
int elements[1];
|
|
} asdl_int_seq;
|
|
|
|
asdl_seq *_Py_asdl_seq_new(Py_ssize_t size, PyArena *arena);
|
|
asdl_int_seq *_Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena);
|
|
|
|
#define asdl_seq_GET(S, I) (S)->elements[(I)]
|
|
#define asdl_seq_LEN(S) ((S) == NULL ? 0 : (S)->size)
|
|
#ifdef Py_DEBUG
|
|
#define asdl_seq_SET(S, I, V) \
|
|
do { \
|
|
Py_ssize_t _asdl_i = (I); \
|
|
assert((S) != NULL); \
|
|
assert(_asdl_i < (S)->size); \
|
|
(S)->elements[_asdl_i] = (V); \
|
|
} while (0)
|
|
#else
|
|
#define asdl_seq_SET(S, I, V) (S)->elements[I] = (V)
|
|
#endif
|
|
|
|
#endif /* !Py_ASDL_H */
|