##// END OF EJS Templates
phases: move short-lived PyObject pointers to local scope...
Yuya Nishihara -
r45740:a6fde9d7 default
parent child Browse files
Show More
@@ -791,10 +791,7 b' static PyObject *compute_phases_map_sets'
791 96: internal */
791 96: internal */
792 static const char trackedphases[] = {1, 2, 32, 96};
792 static const char trackedphases[] = {1, 2, 32, 96};
793 PyObject *roots = Py_None;
793 PyObject *roots = Py_None;
794 PyObject *pyphase = NULL;
795 PyObject *pyrev = NULL;
796 PyObject *phasesetsdict = NULL;
794 PyObject *phasesetsdict = NULL;
797 PyObject *phaseroots = NULL;
798 PyObject *phasesets[4] = {NULL, NULL, NULL, NULL};
795 PyObject *phasesets[4] = {NULL, NULL, NULL, NULL};
799 Py_ssize_t len = index_length(self);
796 Py_ssize_t len = index_length(self);
800 char *phases = NULL;
797 char *phases = NULL;
@@ -815,7 +812,8 b' static PyObject *compute_phases_map_sets'
815 }
812 }
816
813
817 for (i = 0; i < numphases; ++i) {
814 for (i = 0; i < numphases; ++i) {
818 pyphase = PyInt_FromLong(trackedphases[i]);
815 PyObject *pyphase = PyInt_FromLong(trackedphases[i]);
816 PyObject *phaseroots = NULL;
819 if (pyphase == NULL)
817 if (pyphase == NULL)
820 goto release;
818 goto release;
821 phaseroots = PyDict_GetItem(roots, pyphase);
819 phaseroots = PyDict_GetItem(roots, pyphase);
@@ -824,7 +822,6 b' static PyObject *compute_phases_map_sets'
824 continue;
822 continue;
825 rev = add_roots_get_min(self, phaseroots, phases,
823 rev = add_roots_get_min(self, phaseroots, phases,
826 trackedphases[i]);
824 trackedphases[i]);
827 phaseroots = NULL;
828 if (rev == -2)
825 if (rev == -2)
829 goto release;
826 goto release;
830 if (rev != -1 && (minphaserev == -1 || rev < minphaserev))
827 if (rev != -1 && (minphaserev == -1 || rev < minphaserev))
@@ -840,6 +837,8 b' static PyObject *compute_phases_map_sets'
840 if (minphaserev == -1)
837 if (minphaserev == -1)
841 minphaserev = len;
838 minphaserev = len;
842 for (rev = minphaserev; rev < len; ++rev) {
839 for (rev = minphaserev; rev < len; ++rev) {
840 PyObject *pyphase = NULL;
841 PyObject *pyrev = NULL;
843 int parents[2];
842 int parents[2];
844 /*
843 /*
845 * The parent lookup could be skipped for phaseroots, but
844 * The parent lookup could be skipped for phaseroots, but
@@ -886,7 +885,7 b' static PyObject *compute_phases_map_sets'
886 if (phasesetsdict == NULL)
885 if (phasesetsdict == NULL)
887 goto release;
886 goto release;
888 for (i = 0; i < numphases; ++i) {
887 for (i = 0; i < numphases; ++i) {
889 pyphase = PyInt_FromLong(trackedphases[i]);
888 PyObject *pyphase = PyInt_FromLong(trackedphases[i]);
890 if (pyphase == NULL)
889 if (pyphase == NULL)
891 goto release;
890 goto release;
892 if (PyDict_SetItem(phasesetsdict, pyphase, phasesets[i]) ==
891 if (PyDict_SetItem(phasesetsdict, pyphase, phasesets[i]) ==
General Comments 0
You need to be logged in to leave comments. Login now