mercurial/pathencode.c
changeset 29340 ae92c3eee88e
parent 27342 673ba59669b5
child 30099 e60de7fcad29
equal deleted inserted replaced
29339:a9e010cd66e1 29340:ae92c3eee88e
   651 {
   651 {
   652 	static PyObject *shafunc;
   652 	static PyObject *shafunc;
   653 	PyObject *shaobj, *hashobj;
   653 	PyObject *shaobj, *hashobj;
   654 
   654 
   655 	if (shafunc == NULL) {
   655 	if (shafunc == NULL) {
   656 		PyObject *util, *name = PyString_FromString("mercurial.util");
   656 		PyObject *hashlib, *name = PyString_FromString("hashlib");
   657 
   657 
   658 		if (name == NULL)
   658 		if (name == NULL)
   659 			return -1;
   659 			return -1;
   660 
   660 
   661 		util = PyImport_Import(name);
   661 		hashlib = PyImport_Import(name);
   662 		Py_DECREF(name);
   662 		Py_DECREF(name);
   663 
   663 
   664 		if (util == NULL) {
   664 		if (hashlib == NULL) {
   665 			PyErr_SetString(PyExc_ImportError, "mercurial.util");
   665 			PyErr_SetString(PyExc_ImportError, "hashlib");
   666 			return -1;
   666 			return -1;
   667 		}
   667 		}
   668 		shafunc = PyObject_GetAttrString(util, "sha1");
   668 		shafunc = PyObject_GetAttrString(hashlib, "sha1");
   669 		Py_DECREF(util);
   669 		Py_DECREF(hashlib);
   670 
   670 
   671 		if (shafunc == NULL) {
   671 		if (shafunc == NULL) {
   672 			PyErr_SetString(PyExc_AttributeError,
   672 			PyErr_SetString(PyExc_AttributeError,
   673 					"module 'mercurial.util' has no "
   673 					"module 'hashlib' has no "
   674 					"attribute 'sha1'");
   674 					"attribute 'sha1'");
   675 			return -1;
   675 			return -1;
   676 		}
   676 		}
   677 	}
   677 	}
   678 
   678