コード例 #1
0
ファイル: test_rrawarray.py プロジェクト: Darriall/pypy
 def test_copy_list_to_raw_array(self):
     ARRAY = rffi.CArray(lltype.Signed)
     buf = lltype.malloc(ARRAY, 4, flavor='raw')
     lst = [1, 2, 3, 4]
     copy_list_to_raw_array(lst, buf)
     for i in range(4):
         assert buf[i] == i+1
     lltype.free(buf, flavor='raw')
コード例 #2
0
ファイル: test_rrawarray.py プロジェクト: sota/pypy-old
 def test_copy_list_to_raw_array(self):
     ARRAY = rffi.CArray(lltype.Signed)
     buf = lltype.malloc(ARRAY, 4, flavor='raw')
     lst = [1, 2, 3, 4]
     copy_list_to_raw_array(lst, buf)
     for i in range(4):
         assert buf[i] == i + 1
     lltype.free(buf, flavor='raw')
コード例 #3
0
ファイル: ctypeprim.py プロジェクト: zielmicha/pypy
 def pack_list_of_items(self, cdata, w_ob):
     float_list = self.space.listview_float(w_ob)
     if float_list is not None:
         if self.size == rffi.sizeof(rffi.DOUBLE):   # fastest path
             from rpython.rlib.rrawarray import copy_list_to_raw_array
             cdata = rffi.cast(rffi.DOUBLEP, cdata)
             copy_list_to_raw_array(float_list, cdata)
             return True
         elif self.size == rffi.sizeof(rffi.FLOAT):
             misc.pack_float_list_to_raw_array(float_list, cdata,
                                               rffi.FLOAT, rffi.FLOATP)
             return True
     return W_CTypePrimitive.pack_list_of_items(self, cdata, w_ob)
コード例 #4
0
ファイル: ctypeprim.py プロジェクト: zielmicha/pypy
 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_signed(
                 int_list, cdata, self.size)
             if overflowed != 0:
                 self._overflow(self.space.wrap(overflowed))
         return True
     return W_CTypePrimitive.pack_list_of_items(self, cdata, w_ob)
コード例 #5
0
ファイル: test_rrawarray.py プロジェクト: Darriall/pypy
 def fn():
     buf = lltype.malloc(INTARRAY, 3, flavor='raw')
     lst = [1, 2, 3]
     copy_list_to_raw_array(lst, buf)
     for i in range(3):
         assert buf[i] == lst[i]
     #
     buf2 = lltype.malloc(FLOATARRAY, 3, flavor='raw')
     lst = [1.1, 2.2, 3.3]
     copy_list_to_raw_array(lst, buf2)
     for i in range(3):
         assert buf2[i] == lst[i]
     #
     lltype.free(buf, flavor='raw')
     lltype.free(buf2, flavor='raw')
コード例 #6
0
ファイル: test_rrawarray.py プロジェクト: sota/pypy-old
 def fn():
     buf = lltype.malloc(INTARRAY, 3, flavor='raw')
     lst = [1, 2, 3]
     copy_list_to_raw_array(lst, buf)
     for i in range(3):
         assert buf[i] == lst[i]
     #
     buf2 = lltype.malloc(FLOATARRAY, 3, flavor='raw')
     lst = [1.1, 2.2, 3.3]
     copy_list_to_raw_array(lst, buf2)
     for i in range(3):
         assert buf2[i] == lst[i]
     #
     lltype.free(buf, flavor='raw')
     lltype.free(buf2, flavor='raw')
コード例 #7
0
 def pack_list_of_items(self, cdata, w_ob, expected_length):
     int_list = self.space.listview_int(w_ob)
     if (int_list is not None
             and self._within_bounds(len(int_list), expected_length)):
         if self.size == rffi.sizeof(rffi.SIGNED):  # fastest path
             from rpython.rlib.rrawarray import copy_list_to_raw_array
             cdata = rffi.cast(rffi.SIGNEDP, cdata)
             copy_list_to_raw_array(int_list, cdata)
         else:
             overflowed = misc.pack_list_to_raw_array_bounds_signed(
                 int_list, cdata, self.size)
             if overflowed != 0:
                 self._overflow(self.space.newint(overflowed))
         return True
     return W_CTypePrimitive.pack_list_of_items(self, cdata, w_ob,
                                                expected_length)