Class PointerType

    • Constructor Detail

      • PointerType

        public PointerType​(SizeThunk size,
                           Type targetType,
                           int cvAttributes)
    • Method Detail

      • hashCodeImpl

        protected int hashCodeImpl()
        Specified by:
        hashCodeImpl in class Type
      • equalsImpl

        protected boolean equalsImpl​(Type arg)
        Specified by:
        equalsImpl in class Type
      • isAnon

        public boolean isAnon()
        Overrides:
        isAnon in class Type
      • getName

        public String getName​(boolean includeCVAttrs)
        Description copied from class: Type
        Returns the name of this type, optionally including const/volatile attributes. The returned string is suitable for use as a type specifier for Java.
        Overrides:
        getName in class Type
      • getCName

        public String getCName​(boolean includeCVAttrs)
        Description copied from class: Type
        Returns the name of this type, optionally including const/volatile attributes. The returned string is suitable for use as a type specifier for native C.
        Overrides:
        getCName in class Type
      • asPointer

        public final PointerType asPointer()
        Description copied from class: Type
        Casts this to a PointerType or returns null if not a PointerType.
        Overrides:
        asPointer in class Type
      • getTargetType

        public final Type getTargetType()
        Description copied from class: Type
        Helper method to returns the target type of this type, in case another type is being referenced, i.e. returns `type` if this-type is `type*` or `type[]` and returns `type*` if this-type is `type**` or `type[][]`.

        If this is an array or pointer method returns the next target element type, otherwise `this`.

        In this is a Type.isFunctionPointer() type, `this` function PointerType is returned.

        Overrides:
        getTargetType in class Type
        See Also:
        Type.getBaseType(), Type.getTargetFunction()
      • getBaseType

        public final Type getBaseType()
        Description copied from class: Type
        Helper method to returns the bottom-most element type of this type, i.e. returns `type` if this-type is `type*`, `type**`, `type[]` or `type[][]`.

        If this is a multidimensional array or pointer method returns the bottom-most element type, otherwise this.

        In case a Type.isFunctionPointer() type is reached, traversing ends and the function PointerType is returned.

        Overrides:
        getBaseType in class Type
        See Also:
        Type.getTargetType(), Type.getTargetFunction()
      • isFunctionPointer

        public final boolean isFunctionPointer()
        Description copied from class: Type
        Convenience routine indicating whether this Type is a pointer to a function.
        Overrides:
        isFunctionPointer in class Type
      • pointerDepth

        public final int pointerDepth()
        Description copied from class: Type
        Helper method for determining how many pointer indirections this type represents (i.e., "void **" returns 2). Returns 0 if this type is not a pointer type.
        Overrides:
        pointerDepth in class Type
      • toString

        public String toString()
        Description copied from class: Type
        Returns a string representation of this type. The returned string is suitable for use as a type specifier for native C. It does contain an expanded description of structs/unions, hence may not be suitable for type declarations.
        Overrides:
        toString in class Type
      • toString

        public String toString​(String functionName,
                               String callingConvention)
        For use only when printing function pointers. Calling convention string (i.e., "__stdcall") is optional and is generally only needed on Windows.
      • visit

        public void visit​(TypeVisitor arg)
        Description copied from class: Type
        Traverse this Type and all of its component types; for example, the return type and argument types of a FunctionType.
        Overrides:
        visit in class Type