On Sun, Feb 7, 2016 at 6:38 PM, Ratin <rat...@gmail.com> wrote: > On Tue, Feb 2, 2016 at 11:41 PM, wm4 <nfx...@googlemail.com> wrote: > >> On Tue, 2 Feb 2016 14:31:20 -0800 >> Ratin <rat...@gmail.com> wrote: >> >> > libavcodec has codes like this one (utils.c): >> > >> > static AVPacket *add_to_pktbuf(AVPacketList **packet_buffer, AVPacket >> *pkt, >> > AVPacketList **plast_pktl) >> > { >> > AVPacketList *pktl = av_mallocz(sizeof(AVPacketList)); >> > if (!pktl) >> > return NULL; >> > >> > if (*packet_buffer) >> > (*plast_pktl)->next = pktl; >> > else >> > *packet_buffer = pktl; >> > >> > /* Add the packet in the buffered packet list. */ >> > *plast_pktl = pktl; >> > pktl->pkt = *pkt; <=========================== >> > return &pktl->pkt; >> > } >> > >> > Here a struct variable is meant to be copied over via assignment, is that >> > 100% correct to always work the way was intended? Given that the struct >> > pkt is a big struct which has raw bytes that are malloc'd. I was always >> > trained to avoid such struct assignment operations. What do people think? >> >> There is no problem at all here. >> > > Sorry a bit confused, what happens when second argument is not malloc'ed, > somebody uses > > AVPacket pkt; > add_to_pktbuf(packet_list, &pkt, plastpkt) >
add_to_pktbuf is private internal API, if it would be used like this it would be a bug, but its not used like that, so there is no problem. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel