Skip to content

Commit 205e2f2

Browse files
committed
(improvement) remove supprot for protocols <3 from cython files
Continued effort to remove protocol versions < 3 as was done in the native Python code. Signed-off-by: Yaniv Kaul <[email protected]>
1 parent 7acc9f6 commit 205e2f2

File tree

1 file changed

+24
-50
lines changed

1 file changed

+24
-50
lines changed

cassandra/deserializers.pyx

Lines changed: 24 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -208,15 +208,9 @@ cdef class _DesSingleParamType(_DesParameterizedType):
208208

209209
cdef class DesListType(_DesSingleParamType):
210210
cdef deserialize(self, Buffer *buf, int protocol_version):
211-
cdef uint16_t v2_and_below = 2
212-
cdef int32_t v3_and_above = 3
213211

214-
if protocol_version >= 3:
215-
result = _deserialize_list_or_set[int32_t](
216-
v3_and_above, buf, protocol_version, self.deserializer)
217-
else:
218-
result = _deserialize_list_or_set[uint16_t](
219-
v2_and_below, buf, protocol_version, self.deserializer)
212+
result = _deserialize_list_or_set(
213+
buf, protocol_version, self.deserializer)
220214

221215
return result
222216

@@ -225,60 +219,49 @@ cdef class DesSetType(DesListType):
225219
return util.sortedset(DesListType.deserialize(self, buf, protocol_version))
226220

227221

228-
ctypedef fused itemlen_t:
229-
uint16_t # protocol <= v2
230-
int32_t # protocol >= v3
231-
232-
cdef list _deserialize_list_or_set(itemlen_t dummy_version,
233-
Buffer *buf, int protocol_version,
222+
cdef list _deserialize_list_or_set(Buffer *buf, int protocol_version,
234223
Deserializer deserializer):
235224
"""
236225
Deserialize a list or set.
237-
238-
The 'dummy' parameter is needed to make fused types work, so that
239-
we can specialize on the protocol version.
240226
"""
241227
cdef Buffer itemlen_buf
242228
cdef Buffer elem_buf
243229

244-
cdef itemlen_t numelements
230+
cdef int32_t numelements
245231
cdef int offset
246232
cdef list result = []
247233

248-
_unpack_len[itemlen_t](buf, 0, &numelements)
249-
offset = sizeof(itemlen_t)
234+
_unpack_len[int32_t](buf, 0, &numelements)
235+
offset = sizeof(int32_t)
250236
protocol_version = max(3, protocol_version)
251237
for _ in range(numelements):
252-
subelem[itemlen_t](buf, &elem_buf, &offset, dummy_version)
238+
subelem(buf, &elem_buf, &offset)
253239
result.append(from_binary(deserializer, &elem_buf, protocol_version))
254240

255241
return result
256242

257243

258244
cdef inline int subelem(
259-
Buffer *buf, Buffer *elem_buf, int* offset, itemlen_t dummy) except -1:
245+
Buffer *buf, Buffer *elem_buf, int* offset) except -1:
260246
"""
261247
Read the next element from the buffer: first read the size (in bytes) of the
262248
element, then fill elem_buf with a newly sliced buffer of this size (and the
263249
right offset).
264250
"""
265-
cdef itemlen_t elemlen
251+
cdef int32_t elemlen
266252

267-
_unpack_len[itemlen_t](buf, offset[0], &elemlen)
268-
offset[0] += sizeof(itemlen_t)
253+
_unpack_len[int32_t](buf, offset[0], &elemlen)
254+
offset[0] += sizeof(int32_t)
269255
slice_buffer(buf, elem_buf, offset[0], elemlen)
270256
offset[0] += elemlen
271257
return 0
272258

273259

274-
cdef int _unpack_len(Buffer *buf, int offset, itemlen_t *output) except -1:
260+
cdef int _unpack_len(Buffer *buf, int offset, int32_t *output) except -1:
275261
cdef Buffer itemlen_buf
276-
slice_buffer(buf, &itemlen_buf, offset, sizeof(itemlen_t))
262+
slice_buffer(buf, &itemlen_buf, offset, sizeof(int32_t))
277263

278-
if itemlen_t is uint16_t:
279-
output[0] = unpack_num[uint16_t](&itemlen_buf)
280-
else:
281-
output[0] = unpack_num[int32_t](&itemlen_buf)
264+
output[0] = unpack_num[int32_t](&itemlen_buf)
282265

283266
return 0
284267

@@ -295,42 +278,33 @@ cdef class DesMapType(_DesParameterizedType):
295278
self.val_deserializer = self.deserializers[1]
296279

297280
cdef deserialize(self, Buffer *buf, int protocol_version):
298-
cdef uint16_t v2_and_below = 0
299-
cdef int32_t v3_and_above = 0
300281
key_type, val_type = self.cqltype.subtypes
301282

302-
if protocol_version >= 3:
303-
result = _deserialize_map[int32_t](
304-
v3_and_above, buf, protocol_version,
305-
self.key_deserializer, self.val_deserializer,
306-
key_type, val_type)
307-
else:
308-
result = _deserialize_map[uint16_t](
309-
v2_and_below, buf, protocol_version,
310-
self.key_deserializer, self.val_deserializer,
311-
key_type, val_type)
283+
result = _deserialize_map(
284+
buf, protocol_version,
285+
self.key_deserializer, self.val_deserializer,
286+
key_type, val_type)
312287

313288
return result
314289

315290

316-
cdef _deserialize_map(itemlen_t dummy_version,
317-
Buffer *buf, int protocol_version,
291+
cdef _deserialize_map(Buffer *buf, int protocol_version,
318292
Deserializer key_deserializer, Deserializer val_deserializer,
319293
key_type, val_type):
320294
cdef Buffer key_buf, val_buf
321295
cdef Buffer itemlen_buf
322296

323-
cdef itemlen_t numelements
297+
cdef int32_t numelements
324298
cdef int offset
325299
cdef list result = []
326300

327-
_unpack_len[itemlen_t](buf, 0, &numelements)
328-
offset = sizeof(itemlen_t)
301+
_unpack_len[int32_t](buf, 0, &numelements)
302+
offset = sizeof(int32_t)
329303
themap = util.OrderedMapSerializedKey(key_type, protocol_version)
330304
protocol_version = max(3, protocol_version)
331305
for _ in range(numelements):
332-
subelem[itemlen_t](buf, &key_buf, &offset, dummy_version)
333-
subelem[itemlen_t](buf, &val_buf, &offset, numelements)
306+
subelem(buf, &key_buf, &offset)
307+
subelem(buf, &val_buf, &offset)
334308
key = from_binary(key_deserializer, &key_buf, protocol_version)
335309
val = from_binary(val_deserializer, &val_buf, protocol_version)
336310
themap._insert_unchecked(key, to_bytes(&key_buf), val)

0 commit comments

Comments
 (0)