mirror of
https://github.com/JakeHillion/drgn.git
synced 2024-12-23 09:43:06 +00:00
a4b9d68a8c
Apparently the latter is deprecated and the former is preferred. Signed-off-by: Omar Sandoval <osandov@osandov.com>
46 lines
1.0 KiB
C
46 lines
1.0 KiB
C
// Copyright (c) Facebook, Inc. and its affiliates.
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#include "binary_buffer.h"
|
|
#include "drgn.h"
|
|
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
static struct drgn_error *binary_buffer_error_vat(struct binary_buffer *bb,
|
|
const char *pos,
|
|
const char *format,
|
|
va_list ap)
|
|
{
|
|
char *message;
|
|
int ret = vasprintf(&message, format, ap);
|
|
if (ret == -1)
|
|
return &drgn_enomem;
|
|
struct drgn_error *err = bb->error_fn(bb, pos, message);
|
|
free(message);
|
|
return err;
|
|
}
|
|
|
|
struct drgn_error *binary_buffer_error(struct binary_buffer *bb,
|
|
const char *format, ...)
|
|
{
|
|
va_list ap;
|
|
va_start(ap, format);
|
|
struct drgn_error *err = binary_buffer_error_vat(bb, bb->prev, format,
|
|
ap);
|
|
va_end(ap);
|
|
return err;
|
|
}
|
|
|
|
struct drgn_error *binary_buffer_error_at(struct binary_buffer *bb,
|
|
const char *pos, const char *format,
|
|
...)
|
|
{
|
|
va_list ap;
|
|
va_start(ap, format);
|
|
struct drgn_error *err = binary_buffer_error_vat(bb, pos, format, ap);
|
|
va_end(ap);
|
|
return err;
|
|
}
|