BugID | Version | Created | Fixed In | |
20010116.003 (1 msg) | 5.00503 | 2001-01-16 14:25:59 | ||
Status: open | Category: core | Severity: low | OS: linux | |
Sourceaddr: | Dave | |||
Subject: | blessed object lost in anon sub from 'C' call | |||
Administrators: | richardf | |||
Parent IDs: | 0 | Child IDs: | 0 | |
Message IDs: | 12778 | |||
This is a bug report for perl from [email protected], generated with the help of perlbug 1.26 running under perl 5.00503. ----------------------------------------------------------------- [Please enter your report here] I have a bug that I managed to isolate to these conditions: 1) C code starts a perl interpretor that blesses an object 2) C code calls a perl function that creates an anon sub that refers to the blessed object. 3) C code calls a perl function that calls the anon sub. Depending on where and how the blessed object was referred to in the code *around* the anon sub, it can become undefined in the anon sub. For example, if the blessed variable isn't mentioned except in the sub, it will get "lost" (and have an undef value in the sub). If you just refer to it, then it won't get lost, and sometimes this fixes other creation of anon subs. It has weird behavior, but it is reproducible. Calling a subroutine (other than a builtin like print) inside the anon sub fixes the problem as well. I tried to run it on perl 5.6.0, but my 5.6 is threaded, and that's another problem.. Here's the tar of my makefile, the C code and the perl code begin 640 foo.tz.uu M'XL(`"3&9#H``^U7;6_B.!#F:_,K1BFZAI:7$$J18'LZ#M(6'7T14.FDMJ(A M,6W:$$>)T^V*Y7[[C6U2J':KO:N.[H?S\R&)QS/C\4S\V)Y2:E5RFX5I[IN- MNHEOTZI9=?XVJ_ORO43.;%BU:G6_AJHYLVH>-.HYJ&\X+H$T84X,D)LYGI_0 M\$T]$MY]1#@?C2FO_ZGS2*9^0#8T!M;3/-A_L_[5:MU:U;^&\JI5JQWDP-Q0 M/*_P/Z]_USYJ7_9'<`CX)VA:YZC7MX>'>>.S'WBN$WNP6W;=@G:^E,^E0A.% MAV6ZX`;]]O$0S4LNY(W>6:=_V;6'!:V?R?-&O_?[H#WHH11*0<(\=V]/VX:. M$^XP2!,"[)Z`7NI.*`T.W7LGUJ$$]R1T>8^?0'H7^"%)$NW"'O3'+^/=1B0. MH'1J/[-+Y@=)LVG/)L2#$H$=UZ412UH0Q7[(0+\.]=8.?(5$=NM)96VT2D6_ ME:[[_\!UX''/MYJ&"2C3IK:5-SJ=`DY2QL6_UL+$YB=-RQO+)!>:V"TS67B5 ME\Q-B<)*^97N6H#"5'YI6[]MKPPTS0V($V)0\0Q*\73=EU.F*0.7Q@0+2D'3 MDA0G^;;^]?8N[/[UK9E'(A)Z:#)#RI"-];*+1(B8-2QQ]QS.SD?0M?OVR-9^ M]I^N\#T(_I\Y?H@_]*;&^!'_'U@O^[_5,!N<_ZN*_S\&VW[H!JE'X)-/$Q83 M9U:^_U5;2>T_1_;@[+6,T^-K";*Z3[E(JU2@]*_!K2XXYR:$I=$[?6`=F>\* M/[V0D3B*"3YAEU-GB_?&;,PC-SCKPV[BQG[$"C#7`*3$B>^2JQOD_[FN%V7W MHH6]&(Z(2VQ48FN@DP?B,G"0_#!C'OBAZ),V:,&'1#]<=^P$`76-`G<DVBX- M,<^IRP2GK^21$R=$R(IP=MG'9ZT(/"397"G&:9B9XOZ+!"QG)6<B-#SRW1&F M,2%KEAX=NQC<TC"KP$/ZD,+,N?/=QR:*O>%%2^,SNAR>G+8'?QA)5!`".1>T M'T=/ALX_]"(<C[N]8:<]Z'X]'I^=MP>X18FAWOU3C'`FN/UXY)TN^/;/R<W@ M'YA,M[BL-2_VTTN#A$\13P/.:^T_T9$;RU&@BPR^9.L_::RJ)EK//C.J,E4? MO?X%_\N);FR,'Y[_D>PS_J\=U#C_HZ+B_X\`/X`C6_@NPV4]^P)Y)Z1ABY\/ M)S#"LVFGW6\/8`Z\:X*<5C5;R'DLC4.8!'@JA^O\I`4+H7]DCSHGJ+OL+Y7R M\_SXRKQ99`K#T?G`7BEDW;"'UX3Q5?6&ZXD@&*[[EL9\(C^+L,-7\4X1+,M: MQNG2%-?T(9@MX9JO+4%D_A2,O;VL&P.6_`;2$Y^!Q=?<`DB0<-V5II5IXN6$ MSF8$I>("$I)G!OP.`OPPS$D_)#[R?0P\5\!'_TSCQV0U2FMK&P9DBAJ,BIU! MI`IO$,N-PYCZSR21N1:1%Z2M:!\*C_/L\G)"OC2E5WZ-`;$C+9;S7,5>RV+_ M92Z\+"2S?*NX_Y*.]P]6?VLP?"Q+V[!^"ILI*"@H*"@H*"@H*"@H*"@H*"@H -*"AD^!LFL2<\`"@````` ` end [Please do not change anything below this line] ----------------------------------------------------------------- --- Site configuration information for perl 5.00503: Configured by root at Mon Aug 30 23:08:56 EDT 1999. Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration: Platform: osname=linux, osvers=2.2.5-22smp, archname=i386-linux uname='linux porky.devel.redhat.com 2.2.5-22smp #1 smp wed jun 2 09:11:51 edt 1999 i686 unknown ' hint=recommended, useposix=true, d_sigaction=define usethreads=undef useperlio=undef d_sfio=undef Compiler: cc='cc', optimize='-O2', gccversion=egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) cppflags='-Dbool=char -DHAS_BOOL -I/usr/local/include' ccflags ='-Dbool=char -DHAS_BOOL -I/usr/local/include' stdchar='char', d_stdstdio=undef, usevfork=false intsize=4, longsize=4, ptrsize=4, doublesize=8 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 alignbytes=4, usemymalloc=n, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -ldl -lm -lc -lposix -lcrypt libc=, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Locally applied patches: --- @INC for perl 5.00503: /usr/lib/perl5/5.00503/i386-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i386-linux /usr/lib/perl5/site_perl/5.005 . --- Environment for perl 5.00503: HOME=/home/madison LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/madison/bin/i386-linux-libc6:/home/madison/bin:/usr/local/bin/i386-linux-libc6:/usr/local/bin:/usr/local/contrib/bin:/bin:/usr/bin:/usr/X11R6/bin:.:/proj/validation/bin/i386-linux-libc6:/proj/validation/bin:/proj/hw/bin/i386-linux-libc6:/proj/hw/bin:/proj/sw/r5/fred/i386-linux-libc6/bin:/cad/polaris/current/exe:/cad/innologic/current/scripts:/cad/scripts:/cad/ssi/current/bin/:/usr/local/lsf/bin:/usr/local/contrib/bin PERL_BADLANG (unset) SHELL=/bin/tcsh |
Search | Help | Spec | Overview | Administrators | Groups |
Perlbug source | Perlbug database | Email interface | Maintainer | (TODO) | |
Powered by Apache | Driven by MySQL | Hosted by Linux | Scriven in Perl |