Ignore:
Timestamp:
Jun 21, 2015, 6:19:19 AM (10 years ago)
Author:
Michael Catanzaro
Message:

[SOUP] Use GTask in WebKitSoupRequestInputStream
https://bugs.webkit.org/show_bug.cgi?id=146184

Reviewed by Carlos Garcia Campos.

Replace deprecated use of GSimpleAsyncResult with GTask.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(AsyncReadData::AsyncReadData):
(webkitSoupRequestInputStreamReadAsyncResultComplete):
(webkitSoupRequestInputStreamPendingReadAsyncComplete):
(webkitSoupRequestInputStreamReadAsync):
(webkitSoupRequestInputStreamReadFinish):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp

    r185502 r185808  
    2525
    2626struct AsyncReadData {
    27     AsyncReadData(GSimpleAsyncResult* result, void* buffer, gsize count, GCancellable* cancellable)
    28         : result(result)
     27    AsyncReadData(GTask* task, void* buffer, gsize count)
     28        : task(task)
    2929        , buffer(buffer)
    3030        , count(count)
    31         , cancellable(cancellable)
    3231    {
    3332    }
    3433
    35     GRefPtr<GSimpleAsyncResult> result;
     34    GRefPtr<GTask> task;
    3635    void* buffer;
    3736    size_t count;
    38     GRefPtr<GCancellable> cancellable;
    3937};
    4038
     
    5048G_DEFINE_TYPE(WebKitSoupRequestInputStream, webkit_soup_request_input_stream, G_TYPE_MEMORY_INPUT_STREAM)
    5149
    52 static void webkitSoupRequestInputStreamReadAsyncResultComplete(WebKitSoupRequestInputStream* stream, GSimpleAsyncResult* result, void* buffer, gsize count, GCancellable* cancellable)
     50static void webkitSoupRequestInputStreamReadAsyncResultComplete(GTask* task, void* buffer, gsize count)
    5351{
    54     GError* error = 0;
    55     gssize bytesRead = G_INPUT_STREAM_GET_CLASS(stream)->read_fn(G_INPUT_STREAM(stream), buffer, count, cancellable, &error);
     52    WebKitSoupRequestInputStream* stream = WEBKIT_SOUP_REQUEST_INPUT_STREAM(g_task_get_source_object(task));
     53    GError* error = nullptr;
     54    gssize bytesRead = G_INPUT_STREAM_GET_CLASS(stream)->read_fn(G_INPUT_STREAM(stream), buffer, count, g_task_get_cancellable(task), &error);
    5655    if (!error) {
    57         g_simple_async_result_set_op_res_gssize(result, bytesRead);
    5856        stream->priv->bytesRead += bytesRead;
     57        g_task_return_int(task, bytesRead);
    5958    } else
    60         g_simple_async_result_take_error(result, error);
    61     g_simple_async_result_complete_in_idle(result);
     59        g_task_return_error(task, error);
    6260}
    6361
     
    6866
    6967    AsyncReadData* data = stream->priv->pendingAsyncRead.get();
    70     webkitSoupRequestInputStreamReadAsyncResultComplete(stream, data->result.get(), data->buffer, data->count, data->cancellable.get());
     68    webkitSoupRequestInputStreamReadAsyncResultComplete(data->task.get(), data->buffer, data->count);
    7169    stream->priv->pendingAsyncRead = nullptr;
    7270}
     
    8583{
    8684    WebKitSoupRequestInputStream* stream = WEBKIT_SOUP_REQUEST_INPUT_STREAM(inputStream);
    87     GRefPtr<GSimpleAsyncResult> result = adoptGRef(g_simple_async_result_new(G_OBJECT(stream), callback, userData, reinterpret_cast<void*>(webkitSoupRequestInputStreamReadAsync)));
     85    GRefPtr<GTask> task = adoptGRef(g_task_new(stream, cancellable, callback, userData));
    8886
    8987    MutexLocker locker(stream->priv->readLock);
    9088
    9189    if (!webkitSoupRequestInputStreamHasDataToRead(stream) && !webkitSoupRequestInputStreamIsWaitingForData(stream)) {
    92         g_simple_async_result_set_op_res_gssize(result.get(), 0);
    93         g_simple_async_result_complete_in_idle(result.get());
     90        g_task_return_int(task.get(), 0);
    9491        return;
    9592    }
    9693
    9794    if (webkitSoupRequestInputStreamHasDataToRead(stream)) {
    98         webkitSoupRequestInputStreamReadAsyncResultComplete(stream, result.get(), buffer, count, cancellable);
     95        webkitSoupRequestInputStreamReadAsyncResultComplete(task.get(), buffer, count);
    9996        return;
    10097    }
    10198
    102     stream->priv->pendingAsyncRead = std::make_unique<AsyncReadData>(result.get(), buffer, count, cancellable);
     99    stream->priv->pendingAsyncRead = std::make_unique<AsyncReadData>(task.get(), buffer, count);
    103100}
    104101
    105 static gssize webkitSoupRequestInputStreamReadFinish(GInputStream*, GAsyncResult* result, GError**)
     102static gssize webkitSoupRequestInputStreamReadFinish(GInputStream* inputStream, GAsyncResult* result, GError** error)
    106103{
    107     GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result);
    108     g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkitSoupRequestInputStreamReadAsync);
     104    g_return_val_if_fail(g_task_is_valid(result, inputStream), 0);
    109105
    110     return g_simple_async_result_get_op_res_gssize(simpleResult);
     106    return g_task_propagate_int(G_TASK(result), error);
    111107}
    112108
Note: See TracChangeset for help on using the changeset viewer.