Zachary Ware added the comment:

Larry Hastings wrote:
> Does your proposed solution work properly when docstrings are turned
> off?  Try undefining WITH_DOC_STRINGS.  I bet you need to make the
> size 1 in that case.

For certain values of "properly", yes.  It builds with no warnings or errors on 
Windows, but I don't know how it does on memory usage.  It's easy enough to 
define PyDoc_VAR_WITH_SIZE alongside PyDoc_STR and use '1' instead of 'size' 
when WITH_DOC_STRINGS is undefined, though.

> Also, the length must be len(f.docstring) + 1, to account for the
> trailing \0.

I thought so as well, but testing both ways showed no difference.  To provoke a 
difference, I defined length as len(f.docstring) - 1, which threw a compiler 
warning about an overflow.  Adding 1 is probably safer, though.

> Also, error C2133 doesn't look like it's applicable.  On line 71 it's
> not being stored in a structure.  Dumb MSVC.

I can't argue that one :)

> Also PyDoc_SIZEDVAR is a bad name.  PyDoc_SIZED_VAR would be an
> improvement, but I think PyDoc_VAR_WITH_SIZE is the name you want
>there.

Fair enough.

> And, I'm still not a +1 on this approach.  Can you propose something
> else?

I gave the 4 alternatives I could think of; I'll keep thinking and throw out 
anything else I come up with.

> Finally, I will note that the "buffer" preset would work just fine in
> this file, if you dumped the buffer just above the PyMethodDef array.

Indeed; winsound is just a convenient testbed since it's such a small module, 
but the problem will affect any module that can really benefit from the 
two-pass output system.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20323>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to