mfbt/SizePrintfMacros.h
author Nicholas Nethercote <nnethercote@mozilla.com>
Mon, 28 Sep 2015 21:11:52 -0700
changeset 302316 feb0f7522ece30fdcc264ccb8df5e580c4f27a07
parent 247128 687012e14ec9fd24c81d48b1e2e076e96e23d1ce
child 409415 6909c7487def14b559d00c5181c403e36d09ee62
permissions -rw-r--r--
Bug 1209812 (part 1) - Remove casts between cairo_format_t and gfxImageFormat. r=nical. cairo_format_t and gfxImageFormat have their equivalent constants in the same order, so you can just cast between them, which is kind of nasty. This patch replaces all such casts with explicit conversions via calls to new conversion functions. These functions will be removed in a subsequent patch.

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* Implements (nonstandard) PRI{ouxX}SIZE format macros for size_t types. */

#ifndef mozilla_SizePrintfMacros_h_
#define mozilla_SizePrintfMacros_h_

/*
 * MSVC's libc does not support C99's %z format length modifier for size_t
 * types. Instead, we use Microsoft's nonstandard %I modifier for size_t, which
 * is unsigned __int32 on 32-bit platforms and unsigned __int64 on 64-bit
 * platforms:
 *
 * http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx
 */

#if defined(XP_WIN)
#  define PRIoSIZE  "Io"
#  define PRIuSIZE  "Iu"
#  define PRIxSIZE  "Ix"
#  define PRIXSIZE  "IX"
#else
#  define PRIoSIZE  "zo"
#  define PRIuSIZE  "zu"
#  define PRIxSIZE  "zx"
#  define PRIXSIZE  "zX"
#endif

#endif  /* mozilla_SizePrintfMacros_h_ */