Remove Python -safecstrings option.
This option, if used, has not had any effect on Python 3 code since commit a863d3 9 years ago.
I think we can assume that it is not needed for Python 3.
Running the examples and test-suite (Python 2) doesn't change the code
paths with and without -safecstrings because only SWIG_OLDOBJ and SWIG_NEWOBJ
are used in the typemaps and the following code is thus unaltered by -safecstrings
(which sets SWIG_PYTHON_SAFE_CSTRINGS):
%#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
if (*alloc != SWIG_OLDOBJ)
%#else
if (*alloc == SWIG_NEWOBJ)
%#endif
{
*cptr = %new_copy_array(cstr, len + 1, char);
*alloc = SWIG_NEWOBJ;
printf("safe strings: %s\n", *cptr ? *cptr : "NULLSTRING");
} else {
*cptr = cstr;
*alloc = SWIG_OLDOBJ;
}
Note: nosafecstrings was also the default and -O didn't actually change this.
This commit is contained in:
parent
b2aa01f492
commit
de26ebbad1
2 changed files with 5 additions and 32 deletions
|
|
@ -38,21 +38,7 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
|
||||||
%#endif
|
%#endif
|
||||||
if (cptr) {
|
if (cptr) {
|
||||||
if (alloc) {
|
if (alloc) {
|
||||||
/*
|
if (*alloc == SWIG_NEWOBJ) {
|
||||||
In python the user should not be able to modify the inner
|
|
||||||
string representation. To warranty that, if you define
|
|
||||||
SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
|
|
||||||
buffer is always returned.
|
|
||||||
|
|
||||||
The default behavior is just to return the pointer value,
|
|
||||||
so, be careful.
|
|
||||||
*/
|
|
||||||
%#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
|
|
||||||
if (*alloc != SWIG_OLDOBJ)
|
|
||||||
%#else
|
|
||||||
if (*alloc == SWIG_NEWOBJ)
|
|
||||||
%#endif
|
|
||||||
{
|
|
||||||
*cptr = %new_copy_array(cstr, len + 1, char);
|
*cptr = %new_copy_array(cstr, len + 1, char);
|
||||||
*alloc = SWIG_NEWOBJ;
|
*alloc = SWIG_NEWOBJ;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,6 @@ static int nothreads = 0;
|
||||||
static int classptr = 0;
|
static int classptr = 0;
|
||||||
/* Other options */
|
/* Other options */
|
||||||
static int shadowimport = 1;
|
static int shadowimport = 1;
|
||||||
static int safecstrings = 0;
|
|
||||||
static int dirvtable = 0;
|
static int dirvtable = 0;
|
||||||
static int doxygen = 0;
|
static int doxygen = 0;
|
||||||
static int fastunpack = 0;
|
static int fastunpack = 0;
|
||||||
|
|
@ -144,18 +143,15 @@ static const char *usage3 = "\
|
||||||
-noproxy - Don't generate proxy classes \n\
|
-noproxy - Don't generate proxy classes \n\
|
||||||
-noproxyimport - Don't insert proxy import statements derived from the %import directive \n\
|
-noproxyimport - Don't insert proxy import statements derived from the %import directive \n\
|
||||||
-nortti - Disable the use of the native C++ RTTI with directors\n\
|
-nortti - Disable the use of the native C++ RTTI with directors\n\
|
||||||
-nosafecstrings - Avoid extra strings copies when possible (default)\n\
|
|
||||||
-nothreads - Disable thread support for the entire interface\n\
|
-nothreads - Disable thread support for the entire interface\n\
|
||||||
-olddefs - Keep the old method definitions even when using fastproxy\n\
|
-olddefs - Keep the old method definitions even when using fastproxy\n\
|
||||||
-oldrepr - Use shorter and old version of __repr__ in proxy classes\n\
|
-oldrepr - Use shorter and old version of __repr__ in proxy classes\n\
|
||||||
-outputtuple - Use a PyTuple for outputs instead of a PyList (use carefully with legacy interfaces) \n\
|
-outputtuple - Use a PyTuple for outputs instead of a PyList (use carefully with legacy interfaces) \n\
|
||||||
-py3 - Generate code with Python 3 specific features and syntax\n\
|
-py3 - Generate code with Python 3 specific features and syntax\n\
|
||||||
-relativeimport - Use relative python imports \n\
|
-relativeimport - Use relative python imports \n\
|
||||||
-safecstrings - Use safer (but slower) C string mapping, generating copies from Python -> C/C++\n\
|
|
||||||
-threads - Add thread support for all the interface\n\
|
-threads - Add thread support for all the interface\n\
|
||||||
-O - Enable the following optimization options: \n\
|
-O - Enable the following optimization options: \n\
|
||||||
-fastdispatch -nosafecstrings -fvirtual\n\
|
-fastdispatch -fastproxy -fastunpack -fvirtual\n\
|
||||||
-fastproxy -fastunpack\n\
|
|
||||||
\n";
|
\n";
|
||||||
|
|
||||||
static String *getSlot(Node *n = NULL, const char *key = NULL, String *default_slot = NULL) {
|
static String *getSlot(Node *n = NULL, const char *key = NULL, String *default_slot = NULL) {
|
||||||
|
|
@ -393,12 +389,6 @@ public:
|
||||||
/* Turn off thread support mode */
|
/* Turn off thread support mode */
|
||||||
nothreads = 1;
|
nothreads = 1;
|
||||||
Swig_mark_arg(i);
|
Swig_mark_arg(i);
|
||||||
} else if (strcmp(argv[i], "-safecstrings") == 0) {
|
|
||||||
safecstrings = 1;
|
|
||||||
Swig_mark_arg(i);
|
|
||||||
} else if (strcmp(argv[i], "-nosafecstrings") == 0) {
|
|
||||||
safecstrings = 0;
|
|
||||||
Swig_mark_arg(i);
|
|
||||||
} else if (strcmp(argv[i], "-dirvtable") == 0) {
|
} else if (strcmp(argv[i], "-dirvtable") == 0) {
|
||||||
dirvtable = 1;
|
dirvtable = 1;
|
||||||
Swig_mark_arg(i);
|
Swig_mark_arg(i);
|
||||||
|
|
@ -459,7 +449,6 @@ public:
|
||||||
no_header_file = 1;
|
no_header_file = 1;
|
||||||
Swig_mark_arg(i);
|
Swig_mark_arg(i);
|
||||||
} else if (strcmp(argv[i], "-O") == 0) {
|
} else if (strcmp(argv[i], "-O") == 0) {
|
||||||
safecstrings = 0;
|
|
||||||
classptr = 0;
|
classptr = 0;
|
||||||
fastunpack = 1;
|
fastunpack = 1;
|
||||||
fastproxy = 1;
|
fastproxy = 1;
|
||||||
|
|
@ -485,7 +474,8 @@ public:
|
||||||
strcmp(argv[i], "-fastquery") == 0 ||
|
strcmp(argv[i], "-fastquery") == 0 ||
|
||||||
strcmp(argv[i], "-modern") == 0 ||
|
strcmp(argv[i], "-modern") == 0 ||
|
||||||
strcmp(argv[i], "-modernargs") == 0 ||
|
strcmp(argv[i], "-modernargs") == 0 ||
|
||||||
strcmp(argv[i], "-noproxydel") == 0) {
|
strcmp(argv[i], "-noproxydel") == 0 ||
|
||||||
|
strcmp(argv[i], "-safecstrings") == 0) {
|
||||||
Printf(stderr, "Deprecated command line option: %s. This option is now always on.\n", argv[i]);
|
Printf(stderr, "Deprecated command line option: %s. This option is now always on.\n", argv[i]);
|
||||||
} else if (strcmp(argv[i], "-buildnone") == 0 ||
|
} else if (strcmp(argv[i], "-buildnone") == 0 ||
|
||||||
strcmp(argv[i], "-classic") == 0 ||
|
strcmp(argv[i], "-classic") == 0 ||
|
||||||
|
|
@ -494,6 +484,7 @@ public:
|
||||||
strcmp(argv[i], "-nobuildnone") == 0 ||
|
strcmp(argv[i], "-nobuildnone") == 0 ||
|
||||||
strcmp(argv[i], "-nomodern") == 0 ||
|
strcmp(argv[i], "-nomodern") == 0 ||
|
||||||
strcmp(argv[i], "-nomodernargs") == 0 ||
|
strcmp(argv[i], "-nomodernargs") == 0 ||
|
||||||
|
strcmp(argv[i], "-nosafecstrings") == 0 ||
|
||||||
strcmp(argv[i], "-proxydel") == 0) {
|
strcmp(argv[i], "-proxydel") == 0) {
|
||||||
Printf(stderr, "Deprecated command line option: %s. This option is no longer supported.\n", argv[i]);
|
Printf(stderr, "Deprecated command line option: %s. This option is no longer supported.\n", argv[i]);
|
||||||
SWIG_exit(EXIT_FAILURE);
|
SWIG_exit(EXIT_FAILURE);
|
||||||
|
|
@ -645,10 +636,6 @@ public:
|
||||||
Printf(f_runtime, "#define SWIG_PYTHON_THREADS\n");
|
Printf(f_runtime, "#define SWIG_PYTHON_THREADS\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (safecstrings) {
|
|
||||||
Printf(f_runtime, "#define SWIG_PYTHON_SAFE_CSTRINGS\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dirvtable) {
|
if (!dirvtable) {
|
||||||
Printf(f_runtime, "#define SWIG_PYTHON_DIRECTOR_NO_VTABLE\n");
|
Printf(f_runtime, "#define SWIG_PYTHON_DIRECTOR_NO_VTABLE\n");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue