1*627f7eb2Smrg /* Copyright (C) 1999-2019 by The D Language Foundation, All Rights Reserved 2*627f7eb2Smrg * http://www.digitalmars.com 3*627f7eb2Smrg * Distributed under the Boost Software License, Version 1.0. 4*627f7eb2Smrg * (See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5*627f7eb2Smrg * https://github.com/D-Programming-Language/dmd/blob/master/src/root/object.c 6*627f7eb2Smrg */ 7*627f7eb2Smrg 8*627f7eb2Smrg #include "dsystem.h" 9*627f7eb2Smrg #include "object.h" 10*627f7eb2Smrg #include "outbuffer.h" 11*627f7eb2Smrg 12*627f7eb2Smrg /****************************** Object ********************************/ 13*627f7eb2Smrg equals(RootObject * o)14*627f7eb2Smrgbool RootObject::equals(RootObject *o) 15*627f7eb2Smrg { 16*627f7eb2Smrg return o == this; 17*627f7eb2Smrg } 18*627f7eb2Smrg compare(RootObject * obj)19*627f7eb2Smrgint RootObject::compare(RootObject *obj) 20*627f7eb2Smrg { 21*627f7eb2Smrg size_t lhs = (size_t)this; 22*627f7eb2Smrg size_t rhs = (size_t)obj; 23*627f7eb2Smrg if (lhs < rhs) 24*627f7eb2Smrg return -1; 25*627f7eb2Smrg else if (lhs > rhs) 26*627f7eb2Smrg return 1; 27*627f7eb2Smrg return 0; 28*627f7eb2Smrg } 29*627f7eb2Smrg print()30*627f7eb2Smrgvoid RootObject::print() 31*627f7eb2Smrg { 32*627f7eb2Smrg printf("%s %p\n", toChars(), this); 33*627f7eb2Smrg } 34*627f7eb2Smrg toChars()35*627f7eb2Smrgconst char *RootObject::toChars() 36*627f7eb2Smrg { 37*627f7eb2Smrg return "Object"; 38*627f7eb2Smrg } 39*627f7eb2Smrg dyncast()40*627f7eb2Smrgint RootObject::dyncast() const 41*627f7eb2Smrg { 42*627f7eb2Smrg return DYNCAST_OBJECT; 43*627f7eb2Smrg } 44*627f7eb2Smrg toBuffer(OutBuffer * b)45*627f7eb2Smrgvoid RootObject::toBuffer(OutBuffer *b) 46*627f7eb2Smrg { 47*627f7eb2Smrg b->writestring("Object"); 48*627f7eb2Smrg } 49