From 3b79c5de75370c6fd30adbfe72c1e70d9ffe791c Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Thu, 27 Apr 2023 15:53:36 -0400 Subject: use uint16_t instead of short --- pyisda/curve.pyx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyisda/curve.pyx b/pyisda/curve.pyx index 6dc66f1..104a98d 100644 --- a/pyisda/curve.pyx +++ b/pyisda/curve.pyx @@ -2,6 +2,7 @@ from cython.operator import dereference as deref, preincrement as preinc from cpython.bytes cimport PyBytes_FromStringAndSize, PyBytes_AS_STRING from libc.math cimport log1p, log, exp, isnan +from libc.stdint cimport uint16_t from libc.string cimport strcpy, strncpy, strlen from .date cimport (JpmcdsStringToDateInterval, pydate_to_TDate, dcc, JpmcdsDateIntervalToFreq, JpmcdsDateFwdThenAdjust, TDate_to_pydate, @@ -94,7 +95,7 @@ cdef class Curve(object): elif fmt == 0: r = self.buf.get()[:self.buf_size] elif fmt == 2: - packed_size = sizeof(TCurve) + curve.fNumItems * (sizeof(double) + sizeof(short)) + packed_size = sizeof(TCurve) + curve.fNumItems * (sizeof(double) + sizeof(uint16_t)) r = PyBytes_FromStringAndSize(NULL, packed_size) dst = PyBytes_AS_STRING(r) src = curve @@ -102,8 +103,8 @@ cdef class Curve(object): src += sizeof(TCurve) dst += sizeof(TCurve) for i in range(curve.fNumItems): - (dst)[i] = (src)[i].fDate - curve.fBaseDate - ((dst + curve.fNumItems * sizeof(short)))[i] = (src)[i].fRate + (dst)[i] = (src)[i].fDate - curve.fBaseDate + ((dst + curve.fNumItems * sizeof(uint16_t)))[i] = (src)[i].fRate return r def __getstate__(self): -- cgit v1.2.3-70-g09d2