Generated by Cython 0.27.3

Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.

Raw output: gdk_atoms.c

 01: # This file is part of Xpra.
 02: # Copyright (C) 2008, 2009 Nathaniel Smith <njs@pobox.com>
 03: # Copyright (C) 2010-2014 Antoine Martin <antoine@devloop.org.uk>
 04: # Xpra is released under the terms of the GNU GPL v2, or, at your option, any
 05: # later version. See the file COPYING for details.
 06: 
 07: # cython code for manipulating GdkAtoms
 08: 
 09: #cython: wraparound=False
 10: from __future__ import absolute_import
 11: 
+12: import gobject
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_gobject, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gobject, __pyx_t_1) < 0) __PYX_ERR(0, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+13: from gtk import gdk
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_gdk);
  __Pyx_GIVEREF(__pyx_n_s_gdk);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_gdk);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_gtk, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_gdk); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gdk, __pyx_t_1) < 0) __PYX_ERR(0, 13, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 14: 
 15: from libc.stdint cimport uintptr_t
 16: 
 17: # Serious black magic happens here (I owe these guys beers):
 18: cdef extern from "pygobject.h":
 19:     void pygobject_init(int req_major, int req_minor, int req_micro)
+20: pygobject_init(-1, -1, -1)
  pygobject_init(-1, -1, -1);
 21: 
 22: cdef extern from "pygtk/pygtk.h":
 23:     void init_pygtk()
+24: init_pygtk()
  init_pygtk();
 25: # Now all the macros in those header files will work.
 26: 
 27: cdef extern from "Python.h":
 28:     int PyObject_AsReadBuffer(object obj, void ** buffer, Py_ssize_t * buffer_len) except -1
 29: 
 30: cdef extern from "pygtk/pygtk.h":
 31:     ctypedef unsigned long GdkAtom
 32:     GdkAtom PyGdkAtom_Get(object)
 33:     object PyGdkAtom_New(GdkAtom)
 34: 
 35: cdef extern from "gdk/gdktypes.h":
 36:     GdkAtom GDK_NONE
 37: 
 38: 
+39: def gdk_atom_objects_from_gdk_atom_array(atom_string):
/* Python wrapper */
static PyObject *__pyx_pw_4xpra_10gtk_common_4gtk2_9gdk_atoms_1gdk_atom_objects_from_gdk_atom_array(PyObject *__pyx_self, PyObject *__pyx_v_atom_string); /*proto*/
static PyMethodDef __pyx_mdef_4xpra_10gtk_common_4gtk2_9gdk_atoms_1gdk_atom_objects_from_gdk_atom_array = {"gdk_atom_objects_from_gdk_atom_array", (PyCFunction)__pyx_pw_4xpra_10gtk_common_4gtk2_9gdk_atoms_1gdk_atom_objects_from_gdk_atom_array, METH_O, 0};
static PyObject *__pyx_pw_4xpra_10gtk_common_4gtk2_9gdk_atoms_1gdk_atom_objects_from_gdk_atom_array(PyObject *__pyx_self, PyObject *__pyx_v_atom_string) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdk_atom_objects_from_gdk_atom_array (wrapper)", 0);
  __pyx_r = __pyx_pf_4xpra_10gtk_common_4gtk2_9gdk_atoms_gdk_atom_objects_from_gdk_atom_array(__pyx_self, ((PyObject *)__pyx_v_atom_string));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4xpra_10gtk_common_4gtk2_9gdk_atoms_gdk_atom_objects_from_gdk_atom_array(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_atom_string) {
  GdkAtom const *__pyx_v_array;
  Py_ssize_t __pyx_v_array_len_bytes;
  size_t __pyx_v_array_len;
  PyObject *__pyx_v_objects = NULL;
  size_t __pyx_v_i;
  PyObject *__pyx_v_gdk_atom = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdk_atom_objects_from_gdk_atom_array", 0);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("xpra.gtk_common.gtk2.gdk_atoms.gdk_atom_objects_from_gdk_atom_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_objects);
  __Pyx_XDECREF(__pyx_v_gdk_atom);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple_ = PyTuple_Pack(7, __pyx_n_s_atom_string, __pyx_n_s_array, __pyx_n_s_array_len_bytes, __pyx_n_s_array_len, __pyx_n_s_objects, __pyx_n_s_i, __pyx_n_s_gdk_atom); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple_);
  __Pyx_GIVEREF(__pyx_tuple_);
/* … */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4xpra_10gtk_common_4gtk2_9gdk_atoms_1gdk_atom_objects_from_gdk_atom_array, NULL, __pyx_n_s_xpra_gtk_common_gtk2_gdk_atoms); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gdk_atom_objects_from_gdk_atom_a, __pyx_t_2) < 0) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_xpra_gtk_common_gtk2_gdk_atoms_p, __pyx_n_s_gdk_atom_objects_from_gdk_atom_a, 39, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 39, __pyx_L1_error)
 40:     # gdk_property_get auto-converts ATOM and ATOM_PAIR properties from a
 41:     # string of marshalled X atoms to an array of GDK atoms. GDK atoms and X
 42:     # atoms are both basically numeric values, but they are often *different*
 43:     # numeric values. The GTK+ clipboard code uses gdk_property_get. To
 44:     # interpret atoms when dealing with the clipboard, therefore, we need to
 45:     # be able to take an array of GDK atom objects (integers) and figure out
 46:     # what they mean.
+47:     cdef const GdkAtom * array = <GdkAtom*> NULL
  __pyx_v_array = ((GdkAtom *)NULL);
+48:     cdef Py_ssize_t array_len_bytes = 0
  __pyx_v_array_len_bytes = 0;
+49:     assert PyObject_AsReadBuffer(atom_string, <const void**> &array, &array_len_bytes)==0
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!Py_OptimizeFlag)) {
    __pyx_t_1 = PyObject_AsReadBuffer(__pyx_v_atom_string, ((void const **)(&__pyx_v_array)), (&__pyx_v_array_len_bytes)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 49, __pyx_L1_error)
    if (unlikely(!((__pyx_t_1 == 0) != 0))) {
      PyErr_SetNone(PyExc_AssertionError);
      __PYX_ERR(0, 49, __pyx_L1_error)
    }
  }
  #endif
+50:     array_len = array_len_bytes / sizeof(GdkAtom)
  __pyx_t_2 = (sizeof(GdkAtom));
  if (unlikely(__pyx_t_2 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
    __PYX_ERR(0, 50, __pyx_L1_error)
  }
  __pyx_v_array_len = (__pyx_v_array_len_bytes / __pyx_t_2);
+51:     objects = []
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_objects = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+52:     for i in range(array_len):
  __pyx_t_2 = __pyx_v_array_len;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_2; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;
+53:         if array[i]==GDK_NONE:
    __pyx_t_5 = (((__pyx_v_array[__pyx_v_i]) == GDK_NONE) != 0);
    if (__pyx_t_5) {
/* … */
    }
+54:             continue
      goto __pyx_L3_continue;
+55:         gdk_atom = PyGdkAtom_New(array[i])
    __pyx_t_3 = PyGdkAtom_New((__pyx_v_array[__pyx_v_i])); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_gdk_atom, __pyx_t_3);
    __pyx_t_3 = 0;
+56:         objects.append(gdk_atom)
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_objects, __pyx_v_gdk_atom); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 56, __pyx_L1_error)
    __pyx_L3_continue:;
  }
+57:     return objects
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_objects);
  __pyx_r = __pyx_v_objects;
  goto __pyx_L0;
 58: 
+59: def gdk_atom_array_from_atoms(atoms):
/* Python wrapper */
static PyObject *__pyx_pw_4xpra_10gtk_common_4gtk2_9gdk_atoms_3gdk_atom_array_from_atoms(PyObject *__pyx_self, PyObject *__pyx_v_atoms); /*proto*/
static PyMethodDef __pyx_mdef_4xpra_10gtk_common_4gtk2_9gdk_atoms_3gdk_atom_array_from_atoms = {"gdk_atom_array_from_atoms", (PyCFunction)__pyx_pw_4xpra_10gtk_common_4gtk2_9gdk_atoms_3gdk_atom_array_from_atoms, METH_O, 0};
static PyObject *__pyx_pw_4xpra_10gtk_common_4gtk2_9gdk_atoms_3gdk_atom_array_from_atoms(PyObject *__pyx_self, PyObject *__pyx_v_atoms) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdk_atom_array_from_atoms (wrapper)", 0);
  __pyx_r = __pyx_pf_4xpra_10gtk_common_4gtk2_9gdk_atoms_2gdk_atom_array_from_atoms(__pyx_self, ((PyObject *)__pyx_v_atoms));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4xpra_10gtk_common_4gtk2_9gdk_atoms_2gdk_atom_array_from_atoms(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_atoms) {
  GdkAtom __pyx_v_c_gdk_atom;
  uintptr_t __pyx_v_gdk_atom_value;
  PyObject *__pyx_v_gdk_atom_objects = NULL;
  PyObject *__pyx_v_atom_array = NULL;
  PyObject *__pyx_v_atom_object = NULL;
  PyObject *__pyx_v_a = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdk_atom_array_from_atoms", 0);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("xpra.gtk_common.gtk2.gdk_atoms.gdk_atom_array_from_atoms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_gdk_atom_objects);
  __Pyx_XDECREF(__pyx_v_atom_array);
  __Pyx_XDECREF(__pyx_v_atom_object);
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__3 = PyTuple_Pack(7, __pyx_n_s_atoms, __pyx_n_s_c_gdk_atom, __pyx_n_s_gdk_atom_value, __pyx_n_s_gdk_atom_objects, __pyx_n_s_atom_array, __pyx_n_s_atom_object, __pyx_n_s_a); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);
/* … */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4xpra_10gtk_common_4gtk2_9gdk_atoms_3gdk_atom_array_from_atoms, NULL, __pyx_n_s_xpra_gtk_common_gtk2_gdk_atoms); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gdk_atom_array_from_atoms, __pyx_t_2) < 0) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 60:     cdef GdkAtom c_gdk_atom
 61:     cdef uintptr_t gdk_atom_value
+62:     gdk_atom_objects = [gdk.atom_intern(a, False) for a in atoms]
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_v_atoms)) || PyTuple_CheckExact(__pyx_v_atoms)) {
    __pyx_t_2 = __pyx_v_atoms; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_atoms); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 62, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 62, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 62, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 62, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_gdk); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_atom_intern); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_a, Py_False};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_a, Py_False};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_INCREF(__pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_a);
      __Pyx_INCREF(Py_False);
      __Pyx_GIVEREF(Py_False);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, Py_False);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 62, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_gdk_atom_objects = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+63:     atom_array = []
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_atom_array = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+64:     for atom_object in gdk_atom_objects:
  __pyx_t_1 = __pyx_v_gdk_atom_objects; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
  for (;;) {
    if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 64, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_atom_object, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+65:         c_gdk_atom = PyGdkAtom_Get(atom_object)
    __pyx_v_c_gdk_atom = PyGdkAtom_Get(__pyx_v_atom_object);
+66:         if c_gdk_atom!=GDK_NONE:
    __pyx_t_10 = ((__pyx_v_c_gdk_atom != GDK_NONE) != 0);
    if (__pyx_t_10) {
/* … */
    }
+67:             gdk_atom_value = <uintptr_t> c_gdk_atom
      __pyx_v_gdk_atom_value = ((uintptr_t)__pyx_v_c_gdk_atom);
+68:             atom_array.append(gdk_atom_value)
      __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_gdk_atom_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_atom_array, __pyx_t_2); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 68, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+69:     return atom_array
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_atom_array);
  __pyx_r = __pyx_v_atom_array;
  goto __pyx_L0;