Mercurial > cpython-lru_cache-weakref
annotate Mac/Modules/ColorPickermodule.c @ 25838:8540887bcec6 2.2
Backport of 2.183:
Fix memory leak in add_subclass() found by NealN with valgrind.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 18 Oct 2002 13:42:21 +0000 |
| parents | c9a4a1316170 |
| children | 3a8b1d16b7c6 |
| rev | line source |
|---|---|
|
8102
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 /****************************************************************** |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 Copyright 1998 by Just van Rossum, Den Haag, The Netherlands. |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 All Rights Reserved |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 Permission to use, copy, modify, and distribute this software and its |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 documentation for any purpose and without fee is hereby granted, |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 provided that the above copyright notice appear in all copies and that |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 both that copyright notice and this permission notice appear in |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 supporting documentation, and that the name of Just van Rossum not be |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 used in advertising or publicity pertaining to distribution of the |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 software without specific, written prior permission. |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 JUST VAN ROSSUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 EVENT SHALL JUST VAN ROSSUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 PERFORMANCE OF THIS SOFTWARE. |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 ******************************************************************/ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 #include <ColorPicker.h> |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 #include "Python.h" |
| 8153 | 26 #include "macglue.h" |
|
13606
c9a4a1316170
pymactoolbox.h contains protoypes for all externally visible toolbox module
Jack Jansen <jack.jansen@cwi.nl>
parents:
8153
diff
changeset
|
27 #include "pymactoolbox.h" |
|
8102
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 /* ----------------------------------------------------- */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 static char cp_GetColor__doc__[] = |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 "GetColor(prompt, (r, g, b)) -> (r, g, b), ok" |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 ; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 static PyObject * |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 cp_GetColor(self, args) |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 PyObject *self; /* Not used */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 PyObject *args; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 { |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 RGBColor inColor, outColor; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 Boolean ok; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 Point where = {0, 0}; |
| 8153 | 43 Str255 prompt; |
|
8102
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 |
| 8153 | 45 if (!PyArg_ParseTuple(args, "O&O&", PyMac_GetStr255, prompt, QdRGB_Convert, &inColor)) |
|
8102
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 return NULL; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 |
| 8153 | 48 ok = GetColor(where, prompt, &inColor, &outColor); |
|
8102
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 return Py_BuildValue("O&h", QdRGB_New, &outColor, ok); |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 } |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 /* List of methods defined in the module */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 static struct PyMethodDef cp_methods[] = { |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 {"GetColor", (PyCFunction)cp_GetColor, METH_VARARGS, cp_GetColor__doc__}, |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 }; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 /* Initialization function for the module (*must* be called initColorPicker) */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 static char cp_module_documentation[] = |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 "" |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 ; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 void initColorPicker(); |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 void initColorPicker() |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 { |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 PyObject *m; |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 /* Create the module and add the functions */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 m = Py_InitModule4("ColorPicker", cp_methods, |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 cp_module_documentation, |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 (PyObject*)NULL,PYTHON_API_VERSION); |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 /* Add symbolic constants to the module here */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
79 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
80 /* XXXX Add constants here */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
82 /* Check for errors */ |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 if (PyErr_Occurred()) |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 Py_FatalError("can't initialize module ColorPicker"); |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
85 } |
|
427f3489e52b
Added ColorPicker and Printing modules, donated by Just. In config.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 |
