Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame^] | 1 | From 26a9647c832de15248ee649e5b77075521f3d4f0 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Fri, 3 Mar 2023 08:37:35 -0800 |
| 4 | Subject: [PATCH] libcomps: Use Py_hash_t instead of long in PyCOMPS_hash() |
| 5 | |
| 6 | This function is used as a hashfunc callback in |
| 7 | _typeobject defined python3.11/cpython/object.h |
| 8 | compilers detect the protype mismatch for function pointers |
| 9 | with clang16+ |
| 10 | |
| 11 | Fixes |
| 12 | 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] |
| 13 | &PyCOMPS_hash, /*tp_hash */ |
| 14 | |
| 15 | Upstream-Status: Submitted [https://github.com/rpm-software-management/libcomps/pull/101] |
| 16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 17 | --- |
| 18 | libcomps/src/python/src/pycomps_hash.c | 4 ++-- |
| 19 | libcomps/src/python/src/pycomps_hash.h | 2 +- |
| 20 | libcomps/src/python/src/pycomps_utils.h | 2 +- |
| 21 | 3 files changed, 4 insertions(+), 4 deletions(-) |
| 22 | |
| 23 | diff --git a/libcomps/src/python/src/pycomps_hash.c b/libcomps/src/python/src/pycomps_hash.c |
| 24 | index 474afd5..4577769 100644 |
| 25 | --- a/libcomps/src/python/src/pycomps_hash.c |
| 26 | +++ b/libcomps/src/python/src/pycomps_hash.c |
| 27 | @@ -20,9 +20,9 @@ |
| 28 | #include "pycomps_hash.h" |
| 29 | #include "pycomps_utils.h" |
| 30 | |
| 31 | -long PyCOMPS_hash(PyObject *self) { |
| 32 | +Py_hash_t PyCOMPS_hash(PyObject *self) { |
| 33 | char *cstr = NULL; |
| 34 | - long crc; |
| 35 | + Py_hash_t crc; |
| 36 | |
| 37 | cstr = comps_object_tostr(((PyCompsObject*)self)->c_obj); |
| 38 | crc = crc32(0, cstr, strlen(cstr)); |
| 39 | diff --git a/libcomps/src/python/src/pycomps_hash.h b/libcomps/src/python/src/pycomps_hash.h |
| 40 | index b664cae..54e08d9 100644 |
| 41 | --- a/libcomps/src/python/src/pycomps_hash.h |
| 42 | +++ b/libcomps/src/python/src/pycomps_hash.h |
| 43 | @@ -26,6 +26,6 @@ |
| 44 | #include "pycomps_utils.h" |
| 45 | |
| 46 | |
| 47 | -long PyCOMPS_hash(PyObject *self); |
| 48 | +Py_hash_t PyCOMPS_hash(PyObject *self); |
| 49 | |
| 50 | #endif |
| 51 | diff --git a/libcomps/src/python/src/pycomps_utils.h b/libcomps/src/python/src/pycomps_utils.h |
| 52 | index ba9bc2f..b34e4dc 100644 |
| 53 | --- a/libcomps/src/python/src/pycomps_utils.h |
| 54 | +++ b/libcomps/src/python/src/pycomps_utils.h |
| 55 | @@ -137,7 +137,7 @@ COMPS_Object* __pycomps_bytes_in(PyObject *pobj); |
| 56 | PyObject* __pycomps_str_out(COMPS_Object *obj); |
| 57 | PyObject *str_to_unicode(void* str); |
| 58 | |
| 59 | -long PyCOMPS_hash(PyObject *self); |
| 60 | +Py_hash_t PyCOMPS_hash(PyObject *self); |
| 61 | |
| 62 | PyObject* PyCOMPSSeq_extra_get(PyObject *self, PyObject *key); |
| 63 | |
| 64 | -- |
| 65 | 2.39.2 |
| 66 | |