- /* Success. Commit the parameter array. */
- BUFF_FRONT (pfile->a_buff) = (uchar *) ¯o->params[macro->paramc];
+ /* Success. Commit or allocate the parameter array. */
+ if (pfile->hash_table->alloc_subobject)
+ {
+ cpp_token *tokns = pfile->hash_table->alloc_subobject
+ (sizeof (cpp_token) * macro->paramc);
+ memcpy (tokns, macro->params, sizeof (cpp_token) * macro->paramc);
+ macro->params = tokns;
+ }
+ else
+ BUFF_FRONT (pfile->a_buff) = (uchar *) ¯o->params[macro->paramc];