shithub: riscv

ref: 82c08a8a4469c4b4ba515d74addc7aac747a17d9
dir: /sys/src/libmp/port/mpfield.c/

View raw version
#include "os.h"
#include <mp.h>
#include "dat.h"

mpint*
mpfield(mpint *N)
{
	Mfield *f;

	if(N == nil || N->flags & (MPfield|MPstatic))
		return N;
	if((f = cnfield(N)) != nil)
		goto Exchange;
	if((f = gmfield(N)) != nil)
		goto Exchange;
	return N;
Exchange:
	setmalloctag(f, getcallerpc(&N));
	mpfree(N);
	return f;
}