diff options
Diffstat (limited to 'ext/IPC')
-rw-r--r-- | ext/IPC/SysV/SysV.xs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/ext/IPC/SysV/SysV.xs b/ext/IPC/SysV/SysV.xs index 39e932da04..35a8fde0b2 100644 --- a/ext/IPC/SysV/SysV.xs +++ b/ext/IPC/SysV/SysV.xs @@ -163,27 +163,26 @@ PPCODE: { #ifdef HAS_SEM SV **sv_ptr; - SV *sv; struct semid_ds ds; AV *list = (AV*)SvRV(obj); if(!sv_isa(obj, "IPC::Semaphore::stat")) croak("method %s not called a %s object", "pack","IPC::Semaphore::stat"); - if((sv_ptr = av_fetch(list,0,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,0,TRUE)) && *sv_ptr) ds.sem_perm.uid = SvIV(*sv_ptr); - if((sv_ptr = av_fetch(list,1,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,1,TRUE)) && *sv_ptr) ds.sem_perm.gid = SvIV(*sv_ptr); - if((sv_ptr = av_fetch(list,2,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,2,TRUE)) && *sv_ptr) ds.sem_perm.cuid = SvIV(*sv_ptr); - if((sv_ptr = av_fetch(list,3,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,3,TRUE)) && *sv_ptr) ds.sem_perm.cgid = SvIV(*sv_ptr); - if((sv_ptr = av_fetch(list,4,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,4,TRUE)) && *sv_ptr) ds.sem_perm.mode = SvIV(*sv_ptr); - if((sv_ptr = av_fetch(list,5,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,5,TRUE)) && *sv_ptr) ds.sem_ctime = SvIV(*sv_ptr); - if((sv_ptr = av_fetch(list,6,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,6,TRUE)) && *sv_ptr) ds.sem_otime = SvIV(*sv_ptr); - if((sv_ptr = av_fetch(list,7,TRUE)) && (sv = *sv_ptr)) + if((sv_ptr = av_fetch(list,7,TRUE)) && *sv_ptr) ds.sem_nsems = SvIV(*sv_ptr); ST(0) = sv_2mortal(newSVpvn((char *)&ds,sizeof(ds))); XSRETURN(1); |