Beispiel #1
0
 def pack_list_of_items(self, cdata, w_ob):
     int_list = self.space.listview_int(w_ob)
     if int_list is not None:
         overflowed = misc.pack_list_to_raw_array_bounds(int_list, cdata, self.size, r_uint(0), self.vrangemax)
         if overflowed != 0:
             self._overflow(self.space.wrap(overflowed))
         return True
     return W_CTypePrimitive.pack_list_of_items(self, cdata, w_ob)
Beispiel #2
0
    def pack_list_of_items(self, cdata, w_ob):
        int_list = self.space.listview_int(w_ob)
        if int_list is not None:
            if self.size == rffi.sizeof(rffi.LONG):  # fastest path
                from rpython.rlib.rrawarray import copy_list_to_raw_array

                cdata = rffi.cast(rffi.LONGP, cdata)
                copy_list_to_raw_array(int_list, cdata)
            else:
                overflowed = misc.pack_list_to_raw_array_bounds(int_list, cdata, self.size, self.vmin, self.vrangemax)
                if overflowed != 0:
                    self._overflow(self.space.wrap(overflowed))
            return True
        return W_CTypePrimitive.pack_list_of_items(self, cdata, w_ob)