]> git.sesse.net Git - nageru/blobdiff - futatabi/jpeg_frame_view.cpp
Fix a Clang 19 warning.
[nageru] / futatabi / jpeg_frame_view.cpp
index af894328dc1f27cd311796707d16d3327e685692..6dafb3e9ac7eb8adc5723a2cd61ab50a7b03de8c 100644 (file)
@@ -182,8 +182,10 @@ shared_ptr<Frame> decode_jpeg(const string &jpeg)
        }
 
        if (!error_mgr.run([&dinfo, &y_pix, &cb_pix, &cr_pix, pitch_y, pitch_chroma, v_mcu_size, mcu_height_blocks] {
-                   JSAMPROW yptr[v_mcu_size], cbptr[v_mcu_size], crptr[v_mcu_size];
-                   JSAMPARRAY data[3] = { yptr, cbptr, crptr };
+                   unique_ptr<JSAMPROW[]> yptr(new JSAMPROW[v_mcu_size]);
+                   unique_ptr<JSAMPROW[]> cbptr(new JSAMPROW[v_mcu_size]);
+                   unique_ptr<JSAMPROW[]> crptr(new JSAMPROW[v_mcu_size]);
+                   JSAMPARRAY data[3] = { yptr.get(), cbptr.get(), crptr.get() };
                    for (unsigned y = 0; y < mcu_height_blocks; ++y) {
                            // NOTE: The last elements of cbptr/crptr will be unused for vertically subsampled chroma.
                            for (unsigned yy = 0; yy < v_mcu_size; ++yy) {
@@ -210,6 +212,7 @@ shared_ptr<Frame> decode_jpeg(const string &jpeg)
        glFlushMappedNamedBufferRange(pbo.pbo, 0, dinfo.image_width * dinfo.image_height + chroma_width * chroma_height * 2);
        glMemoryBarrier(GL_PIXEL_BUFFER_BARRIER_BIT);
        pbo.upload_done = RefCountedGLsync(GL_SYNC_GPU_COMMANDS_COMPLETE, /*flags=*/0);
+       glFlush();
        frame->uploaded_ui_thread = pbo.upload_done;
        frame->uploaded_interpolation = pbo.upload_done;
        global_pbo_pool->release_pbo(move(pbo));
@@ -411,6 +414,7 @@ void JPEGFrameView::setFrame(shared_ptr<Frame> frame)
        lock_guard<mutex> lock(cache_mu);
        PendingDecode decode;
        decode.frame = std::move(frame);
+       decode.fade_alpha = 0.0f;
        pending_decodes.push_back(decode);
        any_pending_decodes.notify_all();
 }