return SR_OK;
}
-static ssize_t resource_read_default(const struct sr_resource *res,
+static gssize resource_read_default(const struct sr_resource *res,
void *buf, size_t count, void *cb_data)
{
FILE *file;
sr_err("%s: invalid handle.", __func__);
return SR_ERR_ARG;
}
- if (count > SSIZE_MAX) {
+ if (count > G_MAXSSIZE) {
sr_err("%s: count %zu too large.", __func__, count);
return SR_ERR_ARG;
}
*
* @private
*/
-SR_PRIV ssize_t sr_resource_read(struct sr_context *ctx,
+SR_PRIV gssize sr_resource_read(struct sr_context *ctx,
const struct sr_resource *res, void *buf, size_t count)
{
- ssize_t n_read;
+ gssize n_read;
n_read = (*ctx->resource_read_cb)(res, buf, count,
ctx->resource_cb_data);
{
struct sr_resource res;
void *buf;
- ssize_t n_read;
+ size_t res_size;
+ gssize n_read;
if (sr_resource_open(ctx, &res, type, name) != SR_OK)
return NULL;
sr_resource_close(ctx, &res);
return NULL;
}
- buf = g_try_malloc(res.size);
+ res_size = res.size;
+
+ buf = g_try_malloc(res_size);
if (!buf) {
sr_err("Failed to allocate buffer for '%s'.", name);
sr_resource_close(ctx, &res);
return NULL;
}
- n_read = sr_resource_read(ctx, &res, buf, res.size);
+ n_read = sr_resource_read(ctx, &res, buf, res_size);
sr_resource_close(ctx, &res);
- if (n_read < 0 || (size_t)n_read != res.size) {
+ if (n_read < 0 || (size_t)n_read != res_size) {
if (n_read >= 0)
sr_err("Failed to read '%s': premature end of file.",
name);
return NULL;
}
- *size = res.size;
+ *size = res_size;
return buf;
}