notice alignment in byval params

This commit is contained in:
Alon Zakai 2012-01-09 14:52:46 -08:00
Родитель e18b0b100a
Коммит db57539c27
2 изменённых файлов: 6 добавлений и 4 удалений

Просмотреть файл

@ -520,7 +520,7 @@ function JSify(data, functionsOnly, givenFunctions) {
var type = removePointing(param.type);
var typeInfo = Types.types[type];
func.JS += ' var tempParam = ' + param.ident + '; ' + param.ident + ' = ' + RuntimeGenerator.stackAlloc(typeInfo.flatSize) + ';' +
makeCopyValues(param.ident, 'tempParam', typeInfo.flatSize, 'null', null, 1) + ';\n';
makeCopyValues(param.ident, 'tempParam', typeInfo.flatSize, 'null', null, param.byVal) + ';\n';
}
});

Просмотреть файл

@ -314,12 +314,14 @@ function parseParamTokens(params) {
var segment = params.slice(0, i);
params = params.slice(i+1);
segment = cleanSegment(segment);
var byVal = false;
var byVal = 0;
if (segment[1] && segment[1].text === 'byval') {
// handle 'byval' and 'byval align X'
byVal = true;
// handle 'byval' and 'byval align X'. We store the alignment in 'byVal'
byVal = QUANTUM_SIZE;
segment.splice(1, 1);
if (segment[1] && segment[1].text === 'align') {
assert(isNumber(segment[2].text));
byVal = parseInt(segment[2].text);
segment.splice(1, 2);
}
}