Example #1
0
void MCArraysEvalMatrixMultiply(MCExecContext& ctxt, MCArrayRef p_left, MCArrayRef p_right, MCArrayRef& r_result)
{
	// MW-2014-03-14: [[ Bug 11924 ]] If both are empty arrays, then the result
	//   is empty.
    if (MCArrayIsEmpty(p_left) && MCArrayIsEmpty(p_right))
    {
        r_result = MCValueRetain(kMCEmptyArray);
        return;
    }
    
    // MW-2014-03-14: [[ Bug 11924 ]] If either array is empty, then its a mismatch.
	MCAutoPointer<matrix_t> t_left, t_right, t_product;
	if (MCArrayIsEmpty(p_left) || MCArrayIsEmpty(p_right) ||
        !MCArraysCopyMatrix(ctxt, p_left, &t_left) || !MCArraysCopyMatrix(ctxt, p_right, &t_right) ||
		!MCMatrixMultiply(*t_left, *t_right, &t_product))
	{
		ctxt.LegacyThrow(EE_MATRIXMULT_MISMATCH);
		return;
	}

	if (MCArraysCreateWithMatrix(*t_product, r_result))
		return;

	ctxt.Throw();
}
Example #2
0
void MCSecurityEvalEncrypt(MCExecContext& ctxt, MCStringRef p_source, MCStringRef& r_dest)
{
	if (MCStackSecurityEncryptString(p_source, r_dest))
		return;

	ctxt.Throw();
}
Example #3
0
void MCArraysEvalExtents(MCExecContext& ctxt, MCArrayRef p_array, MCStringRef& r_string)
{
	MCAutoListRef t_list;
	if (MCArraysCopyExtents(p_array, &t_list) &&
		MCListCopyAsString(*t_list, r_string))
		return;

	ctxt.Throw();
}
void MCButton::GetEffectiveUnicodeLabel(MCExecContext& ctxt, MCDataRef& r_label)
{
	MCStringRef t_label = nil;
	GetEffectiveLabel(ctxt, t_label);
	if (MCStringEncodeAndRelease(t_label, kMCStringEncodingUTF16, false, r_label))
		return;
	MCValueRelease(t_label);
	
	ctxt.Throw();
}
void MCButton::GetUnicodeAcceleratorText(MCExecContext& ctxt, MCDataRef& r_text)
{
	MCDataRef t_text = nil;
	if (MCStringEncode(acceltext, kMCStringEncodingUTF16, false, t_text))
	{
		r_text = t_text;
		return;
	}
	
	ctxt.Throw();
}
void MCButton::SetUnicodeLabel(MCExecContext& ctxt, MCDataRef p_label)
{
	MCAutoStringRef t_new_label;
	if (MCStringDecode(p_label, kMCStringEncodingUTF16, false, &t_new_label))
	{
		SetLabel(ctxt, *t_new_label);
		return;
	}
	
	ctxt.Throw();
}
void MCControl::SetUnicodeToolTip(MCExecContext& ctxt, MCDataRef p_tooltip)
{
	// Convert the supplied UTF-16 data into a string
	MCStringRef t_tooltip = nil;
	if (MCStringDecode(p_tooltip, kMCStringEncodingUTF16, false, t_tooltip))
	{
		MCValueAssign(tooltip, t_tooltip);
		return;
	}
	
	ctxt.Throw();
}
void MCControl::GetUnicodeToolTip(MCExecContext& ctxt, MCDataRef& r_tooltip)
{
	// Convert the tooltip string into UTF-16 data
	MCDataRef t_tooltip = nil;
	if (MCStringEncode(tooltip, kMCStringEncodingUTF16, false, t_tooltip))
	{
		r_tooltip = t_tooltip;
		return;
	}
	
	ctxt.Throw();
}
Example #9
0
void MCPurchaseGetSignature(MCExecContext& ctxt,MCPurchase *p_purchase, MCStringRef& r_signature)
{
    MCAndroidPurchase *t_android_data = (MCAndroidPurchase*)p_purchase->platform_data;
    
    if (t_android_data->signature != nil)
    {
        r_signature = MCValueRetain(t_android_data->signature);
        return;
    }
    
    ctxt.Throw();
}
Example #10
0
void MCPurchaseGetTransactionIdentifier(MCExecContext& ctxt,MCPurchase *p_purchase, MCStringRef& r_identifier)
{
    MCAndroidPurchase *t_android_data = (MCAndroidPurchase*)p_purchase->platform_data;
    
    if (t_android_data->order_id != nil)
    {
        r_identifier = MCValueRetain(t_android_data->order_id);
        return;
    }
    
    ctxt.Throw();
}
Example #11
0
void MCPurchaseGetPurchaseDate(MCExecContext& ctxt,MCPurchase *p_purchase, integer_t& r_date)
{
    MCAndroidPurchase *t_android_data = (MCAndroidPurchase*)p_purchase->platform_data;
    
    if (t_android_data->purchase_time != nil)
    {
        r_date = (integer_t)(t_android_data->purchase_time);
        return;
    }
    
    ctxt.Throw();
}
Example #12
0
void MCPurchaseGetDeveloperPayload(MCExecContext& ctxt,MCPurchase *p_purchase, MCStringRef& r_payload)
{
    MCAndroidPurchase *t_android_data = (MCAndroidPurchase*)p_purchase->platform_data;
    
    if (t_android_data->developer_payload != nil)
    {
        r_payload = MCValueRetain(t_android_data->developer_payload);
        return;
    }
    
    ctxt.Throw();
}
Example #13
0
void MCSecurityEvalCipherNames(MCExecContext& ctxt, MCStringRef& r_names)
{
	MCAutoListRef t_list;
	MCAutoStringRef t_error;

#ifdef MCSSL
	if (SSL_ciphernames(&t_list, &t_error))
	{
		if (*t_error != nil)
			ctxt.SetTheResultToValue(*t_error);
		if (MCListCopyAsString(*t_list, r_names))
			return;
	}
#endif /* MCSSL */

	ctxt.Throw();
}