www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - argh! seg fault. - testvorbis2.d

reply clayasaurus <clayasaurus_member pathlink.com> writes:
hello, i'm in the process of trying to get openal to work with d. i've tried
converting the following code to D (i think this is where the problem lies,
because my printf's never get past the alutLoadVorbis function). 

c code...
typedef ALboolean (vorbisLoader)(ALuint, ALvoid *, ALint);
vorbisLoader *alutLoadVorbisp = NULL; 

..etc

alutLoadVorbisp(vorbbuf, data, size);

d code...
/* our vorbis extension */
alias ALboolean (vorbisLoader)(ALuint, ALvoid *, ALint);
vorbisLoader *alutLoadVorbisp = null;

..etc

alutLoadVorbisp(vorbbuf, data, size);

i've attached the whole file incase someone wants to take a look at what else
might be causing the problem. i also have code like this

if(stat(fname, &sbuf) == -1)
{
return -1;
}

printf("got stat info\n");

size = sbuf.st_size;
data = malloc(size);
if(data == null) {
exit(1);
}

in here that might be causing the problem. i dunno. any help would be highly
appreciated. thx. 


begin 0644 testvorbis2.d
M:6UP;W)T(&-L87ET96LN8RYA;'1Y<&5S.PII;7!O<G0 8VQA>71E:RYC+F%L
M97AT='EP97,[" II;7!O<G0 8VQA>71E:RYC+F%L.PII;7!O<G0 8VQA>71E
M:RYC+F%L8SL*:6UP;W)T(&-L87ET96LN8RYA;'5T.PH*:6UP;W)T('-T9"YC
M+G-T9&EO.PII;7!O<G0 <W1D+F,N<W1D;&EB.PII;7!O<G0 <W1D+F,N=&EM
M93L*:6UP;W)T('-T9"YC+FQI;G5X+FQI;G5X.R`O+R!I;B!D(&QI;G5X(&9I
M;&4*"F-O;G-T(&EN="!.54U33U520T53(#T ,3L*"D%,8F]O;&5A;B!3;W5R
M8V5)<U!L87EI;F<H04QU:6YT('-I9"D >PH)04QI;G0 <W1A=&4[" H):68H
M86Q)<U-O=7)C92AS:60I(#T]($%,7T9!3%-%*2![" D)<F5T=7)N($%,7T9!
M3%-%.PH)?0H*"7-T871E(#T 04Q?24Y)5$E!3#L*"6%L1V5T4V]U<F-E:78H
M<VED+"!!3%]33U520T5?4U1!5$4L("9S=&%T92D[" ES=VET8V H<W1A=&4I
M('L*"0EC87-E($%,7U!,05E)3D<Z" D)8V%S92!!3%]00553140Z" D)<F5T
M=7)N($%,7U12544[" D)9&5F875L=#H*"0EB<F5A:SL*"7T*" ER971U<FX 
M04Q?1D%,4T4["GT*"D%,=6EN="!V;W)B8G5F.R`O*B!O=7( 8G5F9F5R("HO
M"D%,=6EN="!V;W)B<V]U<F-E(#T 8V%S="A!3'5I;G0 *2`M,3L*"D%,0V-O
M;G1E>'0 *F-O;G1E>'1?:60[" HO*B!O=7( =F]R8FES(&5X=&5N<VEO;B`J
M+PIA;&EA<R!!3&)O;VQE86X *'9O<F)I<TQO861E<BDH04QU:6YT+"!!3'9O
M:60 *BP 04QI;G0I.PIV;W)B:7-,;V%D97( *F%L=71,;V%D5F]R8FES<"`]
M(&YU;&P[" IV;VED(&EN:70H("`I('L*" EA;$=E;D)U9F9E<G,H(#$L("9V
M;W)B8G5F*3L*"6%L1V5N4V]U<F-E<R  ,2P )G9O<F)S;W5R8V4I.PH*"6%L
M4V]U<F-E:2  ('9O<F)S;W5R8V4L($%,7T)51D9%4BP =F]R8F)U9B`I.PH)
M86Q3;W5R8V5I*"` =F]R8G-O=7)C92P 04Q?3$]/4$E.1RP 04Q?5%)512`I
M.PH*"7)E='5R;CL*?0H*:6YT(&UA:6XH8VAA<EM=6UT 87)G<RD >PH)04Q#
M9&5V:6-E("ID978[" E&24Q%("IF:#L*"7-T<G5C=%]S=&%T('-B=68[" EV
M;VED("ID871A.PH)8VAA<B`J9FYA;64[" EI;G0 <VEZ93L*"6EN="!I(#T 
M,#L*" ED978 /2!A;&-/<&5N1&5V:6-E*"!N=6QL("D[" EI9B  9&5V(#T]
M(&YU;&P *2![" D)<')I;G1F*")F86EL960 ;W!E;FEN9R!A;"!D979I8V5<
M;B(I.PH)"7)E='5R;B`Q.PH)?0H*"7!R:6YT9B B3W!E;F5D(&%L(&1E=FEC
M95QN(BD[" H)+RH 26YI=&EA;&EZ92!!3%54+B`J+PH)8V]N=&5X=%]I9"`]
M(&%L8T-R96%T94-O;G1E>'0H(&1E=BP ;G5L;"`I.PH):68H8V]N=&5X=%]I
M9"`]/2!N=6QL*2![" D)86QC0VQO<V5$979I8V4H(&1E=B`I.PH)"7!R:6YT
M9B B9F%I;&5D(&-R96%T:6YG(&%L(&-O;G1E>'1<;B(I.PH)"7)E='5R;B`Q
M.PH)?0H*"7!R:6YT9B B8W)E871E9"!C;VYT97AT(&ED7&XB*3L*" EA;&--
M86ME0V]N=&5X=$-U<G)E;G0H(&-O;G1E>'1?:60 *3L*" EP<FEN=&8H(FUA
M9&4 8V]N=&5X="!I9"!C=7)R96YT7&XB*3L*" EI;FET*"`I.PH*"7!R:6YT
M9B B:6YI=&EA;&EZ961<;B(I.PH*"6EF*&%R9W,N;&5N9W1H(#T](#$I('L*
M"0EF;F%M92`](")B;V]M+F]G9R([" E](&5L<V4 >PH)"69N86UE(#T 87)G
M<ULQ73L*"7T*" EP<FEN=&8H(G-E="!A<F=S7&XB*3L*" EI9BAS=&%T*&9N
M86UE+"`F<V)U9BD /3T +3$I" E[" D)<F5T=7)N("TQ.PH)?0H*"7!R:6YT
M9B B9V]T('-T870 :6YF;UQN(BD[" H)<VEZ92`]('-B=68N<W1?<VEZ93L*
M"61A=&$ /2!M86QL;V,H<VEZ92D[" EI9BAD871A(#T](&YU;&PI('L*"0EE
M>&ET*#$I.PH)?0H*"7!R:6YT9B B9V]T('-I>F4 86YD(&1A=&%<;B(I.PH*
M"69H(#T 9F]P96XH9FYA;64L(")R8B(I.PH):68H9F  /3T ;G5L;"D >PH)
M"69P<FEN=&8H<W1D97)R+"`B0V]U;&0 ;F]T(&]P96X )7-<;B(L(&9N86UE
M*3L*" D)9G)E92AD871A*3L*" D)97AI=" Q*3L*"7T*" EP<FEN=&8H(D]P
M96YE9"!F:6QE(%QN(BD[" H)9G)E860H9&%T82P <VEZ92P ,2P 9F I.PH*
M"7!R:6YT9B B<F5A9"!D871A7&XB*3L*" EA;'5T3&]A9%9O<F)I<W` /2!C
M87-T*'9O<F)I<TQO861E<B`J*2!A;$=E=%!R;V-!9&1R97-S*&-A<W0H04QU
M8GET92`J*2`B86QU=$QO8616;W)B:7-?3$]+22(I.PH*" EP<FEN=&8H(F=O
M="!P<F]C(&%D9')E<W, 7&XB*3L*" EI9BAA;'5T3&]A9%9O<F)I<W` /3T 
M;G5L;"D >PH)"69R964H9&%T82D[" H)"69P<FEN=&8H<W1D97)R+"`B0V]U
M;&0 ;F]T($=E=%!R;V, )7-<;B(L" D)"6-A<W0H04QU8GET92`J*2`B86QU
M=$QO8616;W)B:7-?3$]+22(I.PH)"65X:70H+30I.PH)?0H*"7!R:6YT9B B
M86QU=%9O<F)I<W` ;F]T(&YU;&P 7&XB*3L*" EI9BAA;'5T3&]A9%9O<F)I
M<W`H=F]R8F)U9BP 9&%T82P <VEZ92D (3T 04Q?5%)512D >PH)"69P<FEN
M=&8H<W1D97)R+"`B86QU=$QO8616;W)B:7, 9F%I;&5D7&XB*3L*"0EE>&ET
M*"TR*3L*"7T*" EP<FEN=&8H(FQO861E9"!V;W)B:7-<;B(I.PH*"69R964H
M9&%T82D[" H)<')I;G1F*")F<F5E9"!D871A7&XB*3L*" EA;%-O=7)C95!L
M87DH('9O<F)S;W5R8V4 *3L*" EP<FEN=&8H(G!L87EI;F< 9FEL95QN(BD[
M" H)=VAI;&4H4V]U<F-E27-0;&%Y:6YG*'9O<F)S;W5R8V4I(#T]($%,7U12
M544I('L*"0ES;&5E<" Q*3L*"7T*" EA;&-$97-T<F]Y0V]N=&5X="AC;VYT
M97AT7VED*3L*" EA;&-#;&]S941E=FEC92  9&5V("D[" H)<F5T=7)N(#`[
#"GT*
`
end
Jun 14 2004
next sibling parent reply "Ben Hinkle" <bhinkle mathworks.com> writes:
 if(data == null) {
you probably want "data is null" since == will seg-v if data is null. Most of time == in C should be converted to "is" in D and != to either !== or !(.. is ..)
Jun 14 2004
parent reply clayasaurus <clayasaurus_member pathlink.com> writes:
In article <cakrar$1rgd$1 digitaldaemon.com>, Ben Hinkle says...
 if(data == null) {
you probably want "data is null" since == will seg-v if data is null. Most of time == in C should be converted to "is" in D and != to either !== or !(.. is ..)
well i changed == to is and != to !== , but it still seg faults in the same place.
Jun 14 2004
parent EricAnderton at yahoo dot com <EricAnderton_member pathlink.com> writes:
In article <caksmr$1u72$1 digitaldaemon.com>, clayasaurus says...
In article <cakrar$1rgd$1 digitaldaemon.com>, Ben Hinkle says...
 if(data == null) {
you probably want "data is null" since == will seg-v if data is null. Most of time == in C should be converted to "is" in D and != to either !== or !(.. is ..)
well i changed == to is and != to !== , but it still seg faults in the same place.
Just a thought: is "data" on the stack, or inside of a class? Maybe the *location* of data is no good, rather than just it's value. - Eric
Jun 14 2004
prev sibling parent Mike Parker <aldacron71 yahoo.com> writes:
clayasaurus wrote:

 hello, i'm in the process of trying to get openal to work with d. i've tried
 converting the following code to D (i think this is where the problem lies,
 because my printf's never get past the alutLoadVorbis function). 
 in here that might be causing the problem. i dunno. any help would be highly
 appreciated. thx. 
 
 
You might want to compile and run the C version as well, if you are using the latest version of OAL and haven't run it already. I've heard several reports of crashing since when using the latest.
Jun 14 2004