⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swf_util.c

📁 flash swf file player
💻 C
字号:
/* ==================================================================== * Copyright (c) 2000-2001 by Soheil Seyfaie. All rights reserved. * This program is free software; you can redistribute it and/or modify * it under the same terms as Perl itself. * ==================================================================== * $Author: soheil $ * $Id: swf_util.c,v 1.2 2001/09/24 01:24:34 soheil Exp $ * */#include "EXTERN.h"#include "perl.h"#include "XSUB.h"#include "SWF.h"#include "perl_swf.h"static HV *swf_refcnt_hv = Nullhv;void swf_util_cleanup(void){  hv_undef(swf_refcnt_hv);  SvREFCNT_dec((SV*)swf_refcnt_hv);  swf_refcnt_hv = Nullhv;}void swf_stash_refcnt_inc(SV *sv_key, SV *sv_value){    AV *av_value = Nullav;    STRLEN klen;    char *key;    int store = 0;    dTHR;    key = SvPV(sv_key, klen);    if(swf_refcnt_hv == Nullhv){	swf_refcnt_hv = newHV();    }    else if(hv_exists(swf_refcnt_hv, key, klen)) {	SV *entry = *hv_fetch(swf_refcnt_hv, key, klen, FALSE);	if(entry && SvTRUE(entry) && SvROK(entry)) 	    av_value = (AV*)SvRV(entry);    }    if(av_value == Nullav){      av_value= newAV();      store = 1;    }    av_push (av_value, sv_value);    SvREFCNT_inc(sv_value);    if(av_value && store)	hv_store(swf_refcnt_hv, key, klen, (SV*)newRV((SV*)av_value), FALSE);}void swf_stash_refcnt_dec(SV *sv_key){  STRLEN klen;  char *key;  I32 i;  I32 len;  SV *sv_value;  if(!swf_refcnt_hv) return;  key = SvPV(sv_key, klen);  if(hv_exists(swf_refcnt_hv, key, klen)) {    SV *entry = *hv_fetch(swf_refcnt_hv, key, klen, FALSE);    AV *av;    if(!SvTRUE(entry) && !SvROK(entry))      return;        av = (AV*)SvRV(entry);    len = av_len(av);    for(i=0; i<=len; i++) {      //sv_value = *av_fetch(av, i, FALSE);       sv_value = av_pop(av);      SvREFCNT_dec(sv_value);    }    (void)hv_delete(swf_refcnt_hv, key, klen, G_DISCARD);    av_undef(av);    SvREFCNT_dec((SV*)av);    if(hv_iterinit(swf_refcnt_hv) == 0)      swf_util_cleanup();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -