/* valasourcelocation.c generated by valac, the Vala compiler
 * generated from valasourcelocation.vala, do not modify */

/* valasourcelocation.vala
 *
 * Copyright (C) 2008  Jürg Billeter
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 * 	Jürg Billeter <j@bitron.ch>
 */

#include "vala.h"
#include <glib.h>
#include <string.h>
#include <stdlib.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

void
vala_source_location_init (ValaSourceLocation *self,
                           gchar* _pos,
                           gint _line,
                           gint _column)
{
	memset (self, 0, sizeof (ValaSourceLocation));
	(*self).pos = _pos;
	(*self).line = _line;
	(*self).column = _column;
}

/**
 * Returns a string representation of this source location.
 *
 * @return human-readable string
 */
gchar*
vala_source_location_to_string (ValaSourceLocation *self)
{
	gchar* _tmp0_;
	gchar* result;
	_tmp0_ = g_strdup_printf ("%d.%d", (*self).line, (*self).column);
	result = _tmp0_;
	return result;
}

ValaSourceLocation*
vala_source_location_dup (const ValaSourceLocation* self)
{
	ValaSourceLocation* dup;
	dup = g_new0 (ValaSourceLocation, 1);
	memcpy (dup, self, sizeof (ValaSourceLocation));
	return dup;
}

void
vala_source_location_free (ValaSourceLocation* self)
{
	g_free (self);
}

static GType
vala_source_location_get_type_once (void)
{
	GType vala_source_location_type_id;
	vala_source_location_type_id = g_boxed_type_register_static ("ValaSourceLocation", (GBoxedCopyFunc) vala_source_location_dup, (GBoxedFreeFunc) vala_source_location_free);
	return vala_source_location_type_id;
}

GType
vala_source_location_get_type (void)
{
	static volatile gsize vala_source_location_type_id__once = 0;
	if (g_once_init_enter (&vala_source_location_type_id__once)) {
		GType vala_source_location_type_id;
		vala_source_location_type_id = vala_source_location_get_type_once ();
		g_once_init_leave (&vala_source_location_type_id__once, vala_source_location_type_id);
	}
	return vala_source_location_type_id__once;
}

