AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi C++ Interner Verarbeitungsfehler F1001 - zlib-1.2.7 / libewf-20120603

Interner Verarbeitungsfehler F1001 - zlib-1.2.7 / libewf-20120603

Ein Thema von Alter Mann · begonnen am 12. Jun 2012
Antwort Antwort
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Interner Verarbeitungsfehler F1001 - zlib-1.2.7 / libewf-20120603

  Alt 12. Jun 2012, 12:37
Hallo,

wenn ich versuche die libewf-20120603 zu kompolieren kommt der [BCC32 Fataler Fehler] libfvalue_string.c(2393): F1001 Interner Verarbeitungsfehler im Code-Generator.

Code:
/* Copies an UTF-16 encoded string of a hexadecimal value to a 64-bit value
 * Returns 1 if successful or -1 on error
 */
int libfvalue_utf16_string_hexadecimal_copy_to_64bit(
     const uint16_t *utf16_string,
     size_t utf16_string_size,
     uint64_t *value_64bit,
     liberror_error_t **error )
{
   static char *function = "libfvalue_utf16_string_hexadecimal_copy_to_64bit";
   size_t string_index  = 0;
   uint8_t byte_value   = 0;

   if( utf16_string == NULL )
   {
      liberror_error_set(
       error,
       LIBERROR_ERROR_DOMAIN_ARGUMENTS,
       LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
       "%s: invalid UTF-16 string.",
       function );

      return( -1 );
   }
   if( utf16_string_size > (size_t) SSIZE_MAX )
   {
      liberror_error_set(
       error,
       LIBERROR_ERROR_DOMAIN_ARGUMENTS,
       LIBERROR_ARGUMENT_ERROR_VALUE_EXCEEDS_MAXIMUM,
       "%s: invalid UTF-16 string size value exceeds maximum.",
       function );

      return( -1 );
   }
   if( value_64bit == NULL )
   {
      liberror_error_set(
       error,
       LIBERROR_ERROR_DOMAIN_ARGUMENTS,
       LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
       "%s: invalid value 64-bit.",
       function );

      return( -1 );
   }
   if( ( utf16_string_size > 2 )
    && ( utf16_string[ 0 ] == (uint16_t) '0' )
    && ( utf16_string[ 1 ] == (uint16_t) 'x' ) )
   {
      string_index = 2;
   }
   *value_64bit = 0;

   while( string_index < utf16_string_size )
   {
      if( utf16_string[ string_index ] == 0 )
      {
         break;
      }
      if( string_index > (size_t) 20 )
      {
         liberror_error_set(
          error,
          LIBERROR_ERROR_DOMAIN_ARGUMENTS,
          LIBERROR_ARGUMENT_ERROR_VALUE_TOO_LARGE,
          "%s: string too large.",
          function );

         return( -1 );
      }
      *value_64bit <<= 4;

      if( ( utf16_string[ string_index ] >= (uint16_t) '0' )
       && ( utf16_string[ string_index ] <= (uint16_t) '9' ) )
      {
         byte_value = (uint8_t) ( utf16_string[ string_index ] - (uint16_t) '0' );
      }
      else if( ( utf16_string[ string_index ] >= (uint16_t) 'A' )
            && ( utf16_string[ string_index ] <= (uint16_t) 'F' ) )
      {
         byte_value = (uint8_t) ( utf16_string[ string_index ] - (uint16_t) 'A' + 10 );
      }
      else if( ( utf16_string[ string_index ] >= (uint16_t) 'a' )
            && ( utf16_string[ string_index ] <= (uint16_t) 'f' ) )
      {
         byte_value = (uint8_t) ( utf16_string[ string_index ] - (uint16_t) 'a' + 10 );
      }
      else
      {
         liberror_error_set(
          error,
          LIBERROR_ERROR_DOMAIN_RUNTIME,
          LIBERROR_RUNTIME_ERROR_UNSUPPORTED_VALUE,
          "%s: unsupported character value: %c at index: %d.",
          function,
          (char) utf16_string[ string_index ],
          string_index );

         return( -1 );
      }
      *value_64bit += byte_value;

      string_index++;
   }
   return( 1 );
}             // <- hier??
Das gleiche passiert mir auch bei der zlib-1.2.7 ([BCC32 Fataler Fehler] deflate.c(619): F1001 Interner Verarbeitungsfehler im Code-Generator).

Code:
/* =========================================================================
 * For the default windowBits of 15 and memLevel of 8, this function returns
 * a close to exact, as well as small, upper bound on the compressed size.
 * They are coded as constants here for a reason--if the #define's are
 * changed, then this function needs to be changed as well. The return
 * value for 15 and 8 only works for those exact settings.
 *
 * For any setting other than those defaults for windowBits and memLevel,
 * the value returned is a conservative worst case for the maximum expansion
 * resulting from using fixed blocks instead of stored blocks, which deflate
 * can emit on compressed data for some combinations of the parameters.
 *
 * This function could be more sophisticated to provide closer upper bounds for
 * every combination of windowBits and memLevel. But even the conservative
 * upper bound of about 14% expansion does not seem onerous for output buffer
 * allocation.
 */
uLong ZEXPORT deflateBound(strm, sourceLen)
    z_streamp strm;
    uLong sourceLen;
{
    deflate_state *s;
    uLong complen, wraplen;
    Bytef *str;

    /* conservative upper bound for compressed data */
    complen = sourceLen +
              ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;

    /* if can't get parameters, return conservative bound plus zlib wrapper */
    if (strm == Z_NULL || strm->state == Z_NULL)
        return complen + 6;

    /* compute wrapper length */
    s = strm->state;
    switch (s->wrap) {
    case 0:                                /* raw deflate */
        wraplen = 0;
        break;
    case 1:                                /* zlib wrapper */
        wraplen = 6 + (s->strstart ? 4 : 0);
        break;
    case 2:                                /* gzip wrapper */
        wraplen = 18;
        if (s->gzhead != Z_NULL) {          /* user-supplied gzip header */
            if (s->gzhead->extra != Z_NULL)
                wraplen += 2 + s->gzhead->extra_len;
            str = s->gzhead->name;
            if (str != Z_NULL)
                do {
                    wraplen++;
                } while (*str++);
            str = s->gzhead->comment;
            if (str != Z_NULL)
                do {
                    wraplen++;
                } while (*str++);
            if (s->gzhead->hcrc)
                wraplen += 2;
        }
        break;
    default:                               /* for compiler happiness */
        wraplen = 6;
    }

    /* if not default parameters, return conservative bound */
    if (s->w_bits != 15 || s->hash_bits != 8 + 7)
        return complen + wraplen;

    /* default settings: return tight bound for that case */
    return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
           (sourceLen >> 25) + 13 - 6 + wraplen;
}  // <- hier??
Kennt jemand die Ursache oder Abhilfe?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz