Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d3b55d7

Browse filesBrowse files
committed
bpo-1635741: Apply code review
1 parent 18e988a commit d3b55d7
Copy full SHA for d3b55d7

File tree

1 file changed

+57
-54
lines changed
Filter options

1 file changed

+57
-54
lines changed

‎Modules/mmapmodule.c

Copy file name to clipboardExpand all lines: Modules/mmapmodule.c
+57-54Lines changed: 57 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1509,139 +1509,142 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
15091509
}
15101510
#endif /* MS_WINDOWS */
15111511

1512-
static void
1513-
setint(PyObject *d, const char *name, long value)
1514-
{
1515-
PyObject *o = PyLong_FromLong(value);
1516-
if (o) {
1517-
PyDict_SetItemString(d, name, o);
1518-
Py_DECREF(o);
1519-
}
1520-
}
1521-
15221512
static int
15231513
mmap_exec(PyObject *module)
15241514
{
15251515
if (PyType_Ready(&mmap_object_type) < 0) {
15261516
return -1;
15271517
}
15281518

1529-
PyObject *dict = PyModule_GetDict(module);
1530-
if (!dict) {
1519+
if (PyModule_AddObject(module, "error", PyExc_OSError) < 0) {
15311520
return -1;
15321521
}
1533-
PyDict_SetItemString(dict, "error", PyExc_OSError);
1534-
PyDict_SetItemString(dict, "mmap", (PyObject*) &mmap_object_type);
1522+
if (PyModule_AddType(module, &mmap_object_type) < 0) {
1523+
return -1;
1524+
}
1525+
1526+
#define ADD_INT_MACRO(module, macro) \
1527+
do { \
1528+
if (PyModule_AddIntConstant(module, #macro, macro) < 0) { \
1529+
return -1; \
1530+
} \
1531+
} while (0)
1532+
15351533
#ifdef PROT_EXEC
1536-
setint(dict, "PROT_EXEC", PROT_EXEC);
1534+
ADD_INT_MACRO(module, PROT_EXEC);
15371535
#endif
15381536
#ifdef PROT_READ
1539-
setint(dict, "PROT_READ", PROT_READ);
1537+
ADD_INT_MACRO(module, PROT_READ);
15401538
#endif
15411539
#ifdef PROT_WRITE
1542-
setint(dict, "PROT_WRITE", PROT_WRITE);
1540+
ADD_INT_MACRO(module, PROT_WRITE);
15431541
#endif
15441542

15451543
#ifdef MAP_SHARED
1546-
setint(dict, "MAP_SHARED", MAP_SHARED);
1544+
ADD_INT_MACRO(module, MAP_SHARED);
15471545
#endif
15481546
#ifdef MAP_PRIVATE
1549-
setint(dict, "MAP_PRIVATE", MAP_PRIVATE);
1547+
ADD_INT_MACRO(module, MAP_PRIVATE);
15501548
#endif
15511549
#ifdef MAP_DENYWRITE
1552-
setint(dict, "MAP_DENYWRITE", MAP_DENYWRITE);
1550+
ADD_INT_MACRO(module, MAP_DENYWRITE);
15531551
#endif
15541552
#ifdef MAP_EXECUTABLE
1555-
setint(dict, "MAP_EXECUTABLE", MAP_EXECUTABLE);
1553+
ADD_INT_MACRO(module, MAP_EXECUTABLE);
15561554
#endif
15571555
#ifdef MAP_ANONYMOUS
1558-
setint(dict, "MAP_ANON", MAP_ANONYMOUS);
1559-
setint(dict, "MAP_ANONYMOUS", MAP_ANONYMOUS);
1556+
if (PyModule_AddIntConstant(module, "MAP_ANON", MAP_ANONYMOUS) < 0 ) {
1557+
return -1;
1558+
}
1559+
ADD_INT_MACRO(module, MAP_ANONYMOUS);
15601560
#endif
15611561
#ifdef MAP_POPULATE
1562-
setint(dict, "MAP_POPULATE", MAP_POPULATE);
1562+
ADD_INT_MACRO(module, MAP_POPULATE);
15631563
#endif
1564+
if (PyModule_AddIntConstant(module, "PAGESIZE", (long)my_getpagesize()) < 0 ) {
1565+
return -1;
1566+
}
15641567

1565-
setint(dict, "PAGESIZE", (long)my_getpagesize());
1566-
1567-
setint(dict, "ALLOCATIONGRANULARITY", (long)my_getallocationgranularity());
1568+
if (PyModule_AddIntConstant(module, "ALLOCATIONGRANULARITY", (long)my_getallocationgranularity()) < 0 ) {
1569+
return -1;
1570+
}
15681571

1569-
setint(dict, "ACCESS_DEFAULT", ACCESS_DEFAULT);
1570-
setint(dict, "ACCESS_READ", ACCESS_READ);
1571-
setint(dict, "ACCESS_WRITE", ACCESS_WRITE);
1572-
setint(dict, "ACCESS_COPY", ACCESS_COPY);
1572+
ADD_INT_MACRO(module, ACCESS_DEFAULT);
1573+
ADD_INT_MACRO(module, ACCESS_READ);
1574+
ADD_INT_MACRO(module, ACCESS_WRITE);
1575+
ADD_INT_MACRO(module, ACCESS_COPY);
15731576

15741577
#ifdef HAVE_MADVISE
15751578
// Conventional advice values
15761579
#ifdef MADV_NORMAL
1577-
setint(dict, "MADV_NORMAL", MADV_NORMAL);
1580+
ADD_INT_MACRO(module, MADV_NORMAL);
15781581
#endif
15791582
#ifdef MADV_RANDOM
1580-
setint(dict, "MADV_RANDOM", MADV_RANDOM);
1583+
ADD_INT_MACRO(module, MADV_RANDOM);
15811584
#endif
15821585
#ifdef MADV_SEQUENTIAL
1583-
setint(dict, "MADV_SEQUENTIAL", MADV_SEQUENTIAL);
1586+
ADD_INT_MACRO(module, MADV_SEQUENTIAL);
15841587
#endif
15851588
#ifdef MADV_WILLNEED
1586-
setint(dict, "MADV_WILLNEED", MADV_WILLNEED);
1589+
ADD_INT_MACRO(module, MADV_WILLNEED);
15871590
#endif
15881591
#ifdef MADV_DONTNEED
1589-
setint(dict, "MADV_DONTNEED", MADV_DONTNEED);
1592+
ADD_INT_MACRO(module, MADV_DONTNEED);
15901593
#endif
15911594

15921595
// Linux-specific advice values
15931596
#ifdef MADV_REMOVE
1594-
setint(dict, "MADV_REMOVE", MADV_REMOVE);
1597+
ADD_INT_MACRO(module, MADV_REMOVE);
15951598
#endif
15961599
#ifdef MADV_DONTFORK
1597-
setint(dict, "MADV_DONTFORK", MADV_DONTFORK);
1600+
ADD_INT_MACRO(module, MADV_DONTFORK);
15981601
#endif
15991602
#ifdef MADV_DOFORK
1600-
setint(dict, "MADV_DOFORK", MADV_DOFORK);
1603+
ADD_INT_MACRO(module, MADV_DOFORK);
16011604
#endif
16021605
#ifdef MADV_HWPOISON
1603-
setint(dict, "MADV_HWPOISON", MADV_HWPOISON);
1606+
ADD_INT_MACRO(module, MADV_HWPOISON);
16041607
#endif
16051608
#ifdef MADV_MERGEABLE
1606-
setint(dict, "MADV_MERGEABLE", MADV_MERGEABLE);
1609+
ADD_INT_MACRO(module, MADV_MERGEABLE);
16071610
#endif
16081611
#ifdef MADV_UNMERGEABLE
1609-
setint(dict, "MADV_UNMERGEABLE", MADV_UNMERGEABLE);
1612+
ADD_INT_MACRO(module, MADV_UNMERGEABLE);
16101613
#endif
16111614
#ifdef MADV_SOFT_OFFLINE
1612-
setint(dict, "MADV_SOFT_OFFLINE", MADV_SOFT_OFFLINE);
1615+
ADD_INT_MACRO(module, MADV_SOFT_OFFLINE);
16131616
#endif
16141617
#ifdef MADV_HUGEPAGE
1615-
setint(dict, "MADV_HUGEPAGE", MADV_HUGEPAGE);
1618+
ADD_INT_MACRO(module, MADV_HUGEPAGE);
16161619
#endif
16171620
#ifdef MADV_NOHUGEPAGE
1618-
setint(dict, "MADV_NOHUGEPAGE", MADV_NOHUGEPAGE);
1621+
ADD_INT_MACRO(module, MADV_NOHUGEPAGE);
16191622
#endif
16201623
#ifdef MADV_DONTDUMP
1621-
setint(dict, "MADV_DONTDUMP", MADV_DONTDUMP);
1624+
ADD_INT_MACRO(module, MADV_DONTDUMP);
16221625
#endif
16231626
#ifdef MADV_DODUMP
1624-
setint(dict, "MADV_DODUMP", MADV_DODUMP);
1627+
ADD_INT_MACRO(module, MADV_DODUMP);
16251628
#endif
16261629
#ifdef MADV_FREE // (Also present on FreeBSD and macOS.)
1627-
setint(dict, "MADV_FREE", MADV_FREE);
1630+
ADD_INT_MACRO(module, MADV_FREE);
16281631
#endif
16291632

16301633
// FreeBSD-specific
16311634
#ifdef MADV_NOSYNC
1632-
setint(dict, "MADV_NOSYNC", MADV_NOSYNC);
1635+
ADD_INT_MACRO(module, MADV_NOSYNC);
16331636
#endif
16341637
#ifdef MADV_AUTOSYNC
1635-
setint(dict, "MADV_AUTOSYNC", MADV_AUTOSYNC);
1638+
ADD_INT_MACRO(module, MADV_AUTOSYNC);
16361639
#endif
16371640
#ifdef MADV_NOCORE
1638-
setint(dict, "MADV_NOCORE", MADV_NOCORE);
1641+
ADD_INT_MACRO(module, MADV_NOCORE);
16391642
#endif
16401643
#ifdef MADV_CORE
1641-
setint(dict, "MADV_CORE", MADV_CORE);
1644+
ADD_INT_MACRO(module, MADV_CORE);
16421645
#endif
16431646
#ifdef MADV_PROTECT
1644-
setint(dict, "MADV_PROTECT", MADV_PROTECT);
1647+
ADD_INT_MACRO(module, MADV_PROTECT);
16451648
#endif
16461649
#endif // HAVE_MADVISE
16471650
return 0;
@@ -1663,4 +1666,4 @@ PyMODINIT_FUNC
16631666
PyInit_mmap(void)
16641667
{
16651668
return PyModuleDef_Init(&mmapmodule);
1666-
}
1669+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.