#1472: Namespace.get_pointer_keyed is TOTAL KLUDGE
-------------------------+--------------------------------------------------
 Reporter:  whiteknight  |       Owner:       
     Type:  cage         |      Status:  new  
 Priority:  normal       |   Milestone:       
Component:  none         |     Version:  2.1.0
 Severity:  medium       |    Keywords:       
     Lang:               |       Patch:       
 Platform:               |  
-------------------------+--------------------------------------------------

Comment(by jkeenan):

 `get_pointer_keyed()` is invoked or discussed in quite a few files:
 {{{
 $ fns . | xargs grep -n get_pointer_keyed
 ./src/pmc/namespace.pmc:562:=item C<void *get_pointer_keyed_str(STRING
 *key)>
 ./src/pmc/namespace.pmc:564:=item C<void *get_pointer_keyed(PMC *key)>
 ./src/pmc/namespace.pmc:576:    VTABLE void *get_pointer_keyed_str(STRING
 *key) {
 ./src/pmc/namespace.pmc:590:    VTABLE void *get_pointer_keyed(PMC *key) {
 ./src/pmc/namespace.pmc:598:                return
 SELF.get_pointer_keyed_str(VTABLE_get_string(INTERP, key));
 ./src/pmc/namespace.pmc:606:                        return
 VTABLE_get_pointer_keyed_str(INTERP, ns, part);
 ./src/pmc/namespace.pmc:622:                        return
 VTABLE_get_pointer_keyed_str(INTERP, ns, part);
 ./src/pmc/namespace.pmc:633:                    "Invalid namespace key of
 type '%S' in get_pointer_keyed",
 ./src/vtable.tbl:58:void* get_pointer_keyed(PMC* key)
 ./src/vtable.tbl:59:void* get_pointer_keyed_int(INTVAL key)
 ./src/vtable.tbl:60:void* get_pointer_keyed_str(STRING* key)
 ./src/oo.c:590:    PMC * const value = (PMC
 *)VTABLE_get_pointer_keyed(interp, interp->class_hash, name);
 ./src/global.c:452:    return (PMC *)VTABLE_get_pointer_keyed_str(interp,
 ns, globalname);
 ./src/global.c:511:         * distinguishes 'get_pmc_keyed' from
 'get_pointer_keyed';
 ./src/global.c:514:        res = (PMC
 *)VTABLE_get_pointer_keyed_str(interp, ns, globalname);
 ./src/pmc.c:779:            (PMC *)VTABLE_get_pointer_keyed_str(interp,
 classname_hash, name);
 ./src/pmc.c:810:    PMC * const item = (PMC
 *)VTABLE_get_pointer_keyed(interp, classname_hash, name);
 ./docs/pdds/pdd17_pmc.pod:823:=item get_pointer_keyed
 ./docs/pdds/pdd17_pmc.pod:825:  void* get_pointer_keyed(INTERP, PMC *self,
 PMC *key)
 ./docs/pdds/pdd17_pmc.pod:826:  void* get_pointer_keyed_int(INTERP, PMC
 *self, INTVAL key)
 ./docs/pdds/pdd17_pmc.pod:827:  void* get_pointer_keyed_str(INTERP, PMC
 *self, STRING *key)
 ./docs/embed.pod:1146:=item C<Parrot_PMC_get_pointer_keyed>
 ./docs/embed.pod:1148:=item C<Parrot_PMC_get_pointer_keyed_int>
 ./docs/embed.pod:1150:=item C<Parrot_PMC_get_pointer_keyed_str>
 
./tools/dev/vtablize.pl:68:s/^(\s*)(void\s+\*get_pointer_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE
 $2/;
 
./tools/dev/vtablize.pl:69:s/^(\s*)(void\s+\*get_pointer_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE
 $2/;
 
./tools/dev/vtablize.pl:70:s/^(\s*)(void\s+\*get_pointer_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE
 $2/;
 }}}
 So, while it may well be a kludge, it does not appear to be an obvious
 candidate for deprecation.

 Thank you very much.

 kid51

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1472#comment:1>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to