[vlc-commits] spu: avoid non-portable int to pointer conversion
    Rémi Denis-Courmont 
    git at videolan.org
       
    Tue Nov 20 21:34:06 CET 2018
    
    
  
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Nov 20 20:12:44 2018 +0200| [52ef541420a69dbd9cc59ccd2c10a2309f895010] | committer: Rémi Denis-Courmont
spu: avoid non-portable int to pointer conversion
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=52ef541420a69dbd9cc59ccd2c10a2309f895010
---
 src/video_output/vout_subpictures.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/video_output/vout_subpictures.c b/src/video_output/vout_subpictures.c
index 21b31365cf..6df7669943 100644
--- a/src/video_output/vout_subpictures.c
+++ b/src/video_output/vout_subpictures.c
@@ -1187,7 +1187,7 @@ static void UpdateSPU(spu_t *spu, const vlc_spu_highlight_t *hl)
 
 static subpicture_t *sub_new_buffer(filter_t *filter)
 {
-    int channel = (intptr_t)filter->owner.sys;
+    int channel = *(int *)filter->owner.sys;
 
     subpicture_t *subpicture = subpicture_New(NULL);
     if (subpicture)
@@ -1202,9 +1202,12 @@ static const struct filter_subpicture_callbacks sub_cbs = {
 static int SubSourceInit(filter_t *filter, void *data)
 {
     spu_t *spu = data;
-    int channel = spu_RegisterChannel(spu);
+    int *channel = malloc(sizeof (int));
+    if (unlikely(channel == NULL))
+        return VLC_ENOMEM;
 
-    filter->owner.sys = (void *)(intptr_t)channel;
+    *channel = spu_RegisterChannel(spu);
+    filter->owner.sys = channel;
     filter->owner.sub = &sub_cbs;
     return VLC_SUCCESS;
 }
@@ -1212,9 +1215,10 @@ static int SubSourceInit(filter_t *filter, void *data)
 static int SubSourceClean(filter_t *filter, void *data)
 {
     spu_t *spu = data;
-    int channel = (intptr_t)filter->owner.sys;
+    int *channel = filter->owner.sys;
 
-    spu_ClearChannel(spu, channel);
+    spu_ClearChannel(spu, *channel);
+    free(channel);
     return VLC_SUCCESS;
 }
 
    
    
More information about the vlc-commits
mailing list