git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added swfbbox.
[swftools.git]
/
lib
/
rfxswf.c
diff --git
a/lib/rfxswf.c
b/lib/rfxswf.c
index
34487f1
..
f480458
100644
(file)
--- a/
lib/rfxswf.c
+++ b/
lib/rfxswf.c
@@
-250,7
+250,7
@@
int swf_SetRGB(TAG * t,RGBA * col)
void swf_GetRGB(TAG * t, RGBA * col)
{
RGBA dummy;
void swf_GetRGB(TAG * t, RGBA * col)
{
RGBA dummy;
- if(!col);
+ if(!col)
col = &dummy;
col->r = swf_GetU8(t);
col->g = swf_GetU8(t);
col = &dummy;
col->r = swf_GetU8(t);
col->g = swf_GetU8(t);
@@
-299,22
+299,35
@@
void swf_GetGradient(TAG * tag, GRADIENT * gradient, char alpha)
}
}
}
}
+int swf_CountUBits(U32 v,int nbits)
+{ int n = 32;
+ U32 m = 0x80000000;
+ if(v == 0x00000000) n = 0;
+ else
+ while (!(v&m))
+ { n--;
+ m>>=1;
+ }
+ return (n>nbits)?n:nbits;
+}
+
int swf_CountBits(U32 v,int nbits)
{ int n = 33;
U32 m = 0x80000000;
int swf_CountBits(U32 v,int nbits)
{ int n = 33;
U32 m = 0x80000000;
- if (!v) n = 0; else
if (v&m)
if (v&m)
- { while (v&m)
+ { if(v == 0xffffffff) n = 1;
+ else
+ while (v&m)
{ n--;
m>>=1;
{ n--;
m>>=1;
- if (!m) break;
}
}
else
}
}
else
- { while (!(v&m))
+ { if(v == 0x00000000) n = 0;
+ else
+ while (!(v&m))
{ n--;
m>>=1;
{ n--;
m>>=1;
- if (!m) break;
}
}
return (n>nbits)?n:nbits;
}
}
return (n>nbits)?n:nbits;