| From 26a9647c832de15248ee649e5b77075521f3d4f0 Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Fri, 3 Mar 2023 08:37:35 -0800 |
| Subject: [PATCH] libcomps: Use Py_hash_t instead of long in PyCOMPS_hash() |
| |
| This function is used as a hashfunc callback in |
| _typeobject defined python3.11/cpython/object.h |
| compilers detect the protype mismatch for function pointers |
| with clang16+ |
| |
| Fixes |
| libcomps/src/python/src/pycomps_sequence.c:667:5: error: incompatible function pointer types initializing 'hashfunc' (aka 'int (*)(struct _object *)') with an expression of type 'long (*)(PyObject *)' (aka 'long (*)(struct _object *)') [-Wincompatible-function-pointer-types] |
| &PyCOMPS_hash, /*tp_hash */ |
| |
| Upstream-Status: Submitted [https://github.com/rpm-software-management/libcomps/pull/101] |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| libcomps/src/python/src/pycomps_hash.c | 4 ++-- |
| libcomps/src/python/src/pycomps_hash.h | 2 +- |
| libcomps/src/python/src/pycomps_utils.h | 2 +- |
| 3 files changed, 4 insertions(+), 4 deletions(-) |
| |
| diff --git a/libcomps/src/python/src/pycomps_hash.c b/libcomps/src/python/src/pycomps_hash.c |
| index 474afd5..4577769 100644 |
| --- a/libcomps/src/python/src/pycomps_hash.c |
| +++ b/libcomps/src/python/src/pycomps_hash.c |
| @@ -20,9 +20,9 @@ |
| #include "pycomps_hash.h" |
| #include "pycomps_utils.h" |
| |
| -long PyCOMPS_hash(PyObject *self) { |
| +Py_hash_t PyCOMPS_hash(PyObject *self) { |
| char *cstr = NULL; |
| - long crc; |
| + Py_hash_t crc; |
| |
| cstr = comps_object_tostr(((PyCompsObject*)self)->c_obj); |
| crc = crc32(0, cstr, strlen(cstr)); |
| diff --git a/libcomps/src/python/src/pycomps_hash.h b/libcomps/src/python/src/pycomps_hash.h |
| index b664cae..54e08d9 100644 |
| --- a/libcomps/src/python/src/pycomps_hash.h |
| +++ b/libcomps/src/python/src/pycomps_hash.h |
| @@ -26,6 +26,6 @@ |
| #include "pycomps_utils.h" |
| |
| |
| -long PyCOMPS_hash(PyObject *self); |
| +Py_hash_t PyCOMPS_hash(PyObject *self); |
| |
| #endif |
| diff --git a/libcomps/src/python/src/pycomps_utils.h b/libcomps/src/python/src/pycomps_utils.h |
| index ba9bc2f..b34e4dc 100644 |
| --- a/libcomps/src/python/src/pycomps_utils.h |
| +++ b/libcomps/src/python/src/pycomps_utils.h |
| @@ -137,7 +137,7 @@ COMPS_Object* __pycomps_bytes_in(PyObject *pobj); |
| PyObject* __pycomps_str_out(COMPS_Object *obj); |
| PyObject *str_to_unicode(void* str); |
| |
| -long PyCOMPS_hash(PyObject *self); |
| +Py_hash_t PyCOMPS_hash(PyObject *self); |
| |
| PyObject* PyCOMPSSeq_extra_get(PyObject *self, PyObject *key); |
| |
| -- |
| 2.39.2 |
| |