]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: silence GCC warning 25199/head
authorKefu Chai <kchai@redhat.com>
Wed, 21 Nov 2018 08:56:52 +0000 (16:56 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 21 Nov 2018 09:03:30 +0000 (17:03 +0800)
the signature of PyObject_CallMethod() is different in python2 and
python3:

in python2: it is

PyObject* PyObject_CallMethod(PyObject *o, char *method, char *format,
...)

while in python3, it is

PyObject* PyObject_CallMethod(PyObject *obj, const char *name, const
char *format, ...)

so, if we compile mgr with python2, we will have following warning:

warning: ISO C++ forbids converting a string constant to ‘char*’
[-Wwrite-strings]
        (char*)NULL);
                   ^

it'd be simpler if we just const_cast<> the method name string, to
silence the warning just like other places we call
PyObject_CallMethod().

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/mgr/ActivePyModule.cc

index 4d07222b7d7fe2471d05ad0dcc5da161f3dff934..56c34803fd97f47bad7759c75c76ec6ed0d55530 100644 (file)
@@ -160,7 +160,8 @@ void ActivePyModule::config_notify()
   Gil gil(py_module->pMyThreadState, true);
   dout(20) << "Calling " << py_module->get_name() << ".config_notify..."
           << dendl;
-  auto remoteResult = PyObject_CallMethod(pClassInstance, "config_notify",
+  auto remoteResult = PyObject_CallMethod(pClassInstance,
+                                         const_cast<char*>("config_notify"),
                                          (char*)NULL);
   if (remoteResult != nullptr) {
     Py_DECREF(remoteResult);