Ticket UUID: | 465213d1715f9e2c0eba602a7f802ec4ea11d246 | |||
Title: | Tcl_NewMethod() documentation error | |||
Type: | Bug | Version: | trunk | |
Submitter: | dgp | Created on: | 2015-06-19 15:54:10 | |
Subsystem: | 35. TclOO Package | Assigned To: | dkf | |
Priority: | 7 High | Severity: | Important | |
Status: | Closed | Last Modified: | 2015-08-18 13:30:39 | |
Resolution: | Fixed | Closed By: | dkf | |
Closed on: | 2015-08-18 13:30:39 | |||
Description: |
The documentation for Tcl_NewMethod: Tcl_Method Tcl_NewMethod(interp, class, nameObj, isPublic, methodTypePtr, clientData) ... int isPublic (in) A boolean flag saying whether the method is to be exported. seems to be mistaken. The implementation of Tcl_NewMethod() calls its third argument "flags" and it pulls from "flags" the particular bit settings PUBLIC_METHOD and PRIVATE_METHOD for storing in the new Method struct . The upshot is that passing the values 1 or 2 or 3 which as booleans are all the same "true" value, actually will result in different behaviors, some potentially seriously broken. Either the documented interface or the implementation should be chosen to survive, with the other adjusted as needed. If the interface is revised, the bit definitions will need exporting. | |||
User Comments: |
dkf added on 2015-08-18 13:30:39:
Updated the documentation to say that supported values are 0 (non-exported) and 1 (exported), and what those values mean. The other possible values are currently kept for possible future definition. |
