VirtualBox

Changeset 2013 in kBuild


Ignore:
Timestamp:
Nov 1, 2008 2:46:00 PM (16 years ago)
Author:
bird
Message:

kbuild.c: Use append_string_to_variable and avoid memcpying _OUT_FILES for every object. Ditto for $(target)_OBJS_.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/kbuild.c

    r2012 r2013  
    11/* $Id$ */
    22/** @file
    3  *
    43 * kBuild specific make functionality.
    5  *
    6  * Copyright (c) 2006-2007 knut st. osmundsen <[email protected]>
    7  *
     4 */
     5
     6/*
     7 * Copyright (c) 2006-2008 knut st. osmundsen <[email protected]>
    88 *
    99 * This file is part of kBuild.
     
    465465
    466466    MY_ASSERT_MSG(strlen(pVar->value) == pVar->value_length,
    467                   ("%u != %u %.*s\n", pVar->value_length, strlen(pVar->value), (int)cchName, pVar->name));
     467                  ("%u != %u %.*s\n", pVar->value_length, (unsigned int)strlen(pVar->value), (int)cchName, pVar->name));
    468468    return pVar;
    469469}
     
    485485
    486486    MY_ASSERT_MSG(strlen(pVar->value) == pVar->value_length,
    487                   ("%u != %u %s\n", pVar->value_length, strlen(pVar->value), pVar->name));
     487                  ("%u != %u %s\n", pVar->value_length, (unsigned int)strlen(pVar->value), pVar->name));
    488488    return pVar;
    489489}
     
    503503    struct variable *pVar = lookup_variable(pszName, cchName);
    504504    MY_ASSERT_MSG(!pVar || strlen(pVar->value) == pVar->value_length,
    505                   ("%u != %u %.*s\n", pVar->value_length, strlen(pVar->value), (int)cchName, pVar->name));
     505                  ("%u != %u %.*s\n", pVar->value_length, (unsigned int)strlen(pVar->value), (int)cchName, pVar->name));
    506506    return pVar;
    507507}
     
    540540#endif
    541541            free(pVar->value);
    542         assert (pVar->origin != o_automatic);
     542        assert(pVar->origin != o_automatic);
    543543        pVar->value = pszExpanded;
    544544        pVar->value_length = value_len;
     
    565565    {
    566566        MY_ASSERT_MSG(strlen(pVar->value) == pVar->value_length,
    567                       ("%u != %u %.*s\n", pVar->value_length, strlen(pVar->value), (int)cchName, pVar->name));
     567                      ("%u != %u %.*s\n", pVar->value_length, (unsigned int)strlen(pVar->value), (int)cchName, pVar->name));
    568568
    569569        /* Make sure the variable is simple, convert it if necessary. */
     
    21152115    _OUT_FILES      += $($(target)_$(source)_OUTPUT_) $($(target)_$(source)_OUTPUT_MAYBE_)
    21162116    */
    2117     /** @todo use append? */
    21182117    pVar = kbuild_get_variable_n(ST("_OUT_FILES"));
    2119     psz = pszVal = xmalloc(pVar->value_length + 1 + pOutput->value_length + 1 + pOutputMaybe->value_length + 1);
    2120     memcpy(psz, pVar->value, pVar->value_length); psz += pVar->value_length;
    2121     *psz++ = ' ';
    2122     memcpy(psz, pOutput->value, pOutput->value_length); psz += pOutput->value_length;
    2123     *psz++ = ' ';
    2124     memcpy(psz, pOutputMaybe->value, pOutputMaybe->value_length + 1);
    2125     do_variable_definition_2(NILF, "_OUT_FILES", pszVal,
    2126                              pVar->value_length + 1 + pOutput->value_length + 1 + pOutputMaybe->value_length,
    2127                              !pVar->recursive && !pOutput->recursive && !pOutputMaybe->recursive,
    2128                              pszVal, o_file, f_simple, 0 /* !target_var */);
     2118    append_string_to_variable(pVar, pOutput->value, pOutput->value_length, 1 /* append */);
     2119    if (pOutputMaybe->value_length)
     2120        append_string_to_variable(pVar, pOutputMaybe->value, pOutputMaybe->value_length, 1 /* append */);
    21292121
    21302122    /*
     
    21322124    */
    21332125    memcpy(pszDstVar + pTarget->value_length, "_OBJS_", sizeof("_OBJS_"));
    2134     do_variable_definition_2(NILF, pszDstVar, pObj->value, pObj->value_length,
    2135                              !pObj->recursive, 0, o_file, f_append, 0 /* !target_var */);
     2126    pVar = kbuild_query_recursive_variable_n(pszDstVar, pTarget->value_length + sizeof("_OBJS_") - 1);
     2127    if (pVar)
     2128    {
     2129        if (pVar->recursive)
     2130            pVar = kbuild_simplify_variable(pVar);
     2131        assert(!pObj->recursive);
     2132        append_string_to_variable(pVar, pObj->value, pObj->value_length, 1 /* append */);
     2133    }
     2134    else
     2135        define_variable_vl_global(pszDstVar, pTarget->value_length + sizeof("_OBJS_") - 1,
     2136                                  pObj->value, pObj->value_length,
     2137                                  1 /* duplicate_value */,
     2138                                  o_file,
     2139                                  0 /* recursive */,
     2140                                  NULL /* flocp */);
    21362141
    21372142    /*
     
    21402145    pVar = kbuild_get_recursive_variable("def_target_source_rule");
    21412146    pszVal = variable_expand_string_2 (o, pVar->value, pVar->value_length, &psz);
    2142     assert (!((size_t)pszVal & 3));
     2147    assert(!((size_t)pszVal & 3));
    21432148
    21442149    install_variable_buffer(&pszSavedVarBuf, &cchSavedVarBuf);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette